这是我删除操作的路由处理程序.只要该项目没有任何关联,它就能很好地工作.
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 ));
}
Run Code Online (Sandbox Code Playgroud)
我已经解决了尝试删除带关联的项的错误,但是通过这个过程,"flush"抛出了PDOException.我尝试了各种方法来捕获它,但它似乎被Symfony2内部捕获,然后它响应HTTP 500错误.有没有办法我可以让Symfony2没有抓住这个,以便我可以处理它?这是一个使用AJAX的XML响应,所以我宁愿只发送一个错误代码.