これは、削除アクションのルート ハンドラーです。アイテムに関連付けがない限り、うまく機能します。
public function projectDeleteAction()
{
try {
$request = $this->get('request');
$my_id = $request->query->get('id');
$em = $this->get('doctrine.orm.entity_manager');
$item = $em->find('MyBundle:Main', $my_id);
$em->remove($item);
$em->flush();
$info = $item->getName();
$result = 0;
}
catch (Exception $e) {
$info = toString($e);
$result = -1;
}
return $this->render('MyBundle:Main:response.xml.twig',
array('info' => $info, 'result' => $result ));
}
関連付けのあるアイテムを削除しようとするエラーは既に解決しましたが、このプロセスを通じて、「フラッシュ」が PDOException をスローしていました。キャッチするためにさまざまな方法を試しましたが、Symfony2 内でキャッチされているようで、HTTP 500 エラーで応答します。Symfony2 がこれをキャッチしないようにして処理できるようにする方法はありますか? これは AJAX を使用した XML 応答であるため、上記のエラー コードを送信するだけで済みます。