Symfony 2删除相关记录

时间:2015-03-30 13:44:49

标签: php symfony symfony-2.3

如果我尝试删除在数据库中链接记录的记录,我会尝试抛出用户友好的错误消息。我希望解决方案更通用:目标是让一个侦听器听取某种事件。删除记录的基本操作是:

public function deleteAction(Request $request, $id)
    {
        $form = $this->createDeleteForm($id);
        $form->handleRequest($request);

        if ($form->isValid()) {
            $em     = $this->getDoctrine()->getManager();
            $entity = $em->getRepository('Bundle:Entity')->find($id);

            if (!$entity) {
                throw $this->createNotFoundException('Unable to find Entity entity.');
            }

            $em->remove($entity);
            $em->flush();

            $request->getSession()->getFlashBag()->add(
                'success',
                $this->get('translator')->trans('Entity ' . $entity->getName(). ' was deleted successfully!')
            );
        }

        return $this->redirect($this->generateUrl('route'));
    }

现在它抛出一个Doctrine\DBAL\DBALException。当然我们可以放一个try/catch块,但我必须把它放在我的每一个动作中。

另一个解决方案是确定某个实体是否已关联,但我似乎无法找到如何实现这一目标。

有什么建议吗?

0 个答案:

没有答案