在DELETE之前确定外键关系

时间:2014-06-24 00:58:09

标签: symfony foreign-keys

我的模型中有很多关系,我注意到如果我尝试删除一个模型(我已经设置了各种UI屏幕来执行此操作),它会失败,因为另一个表引用了该记录。

我是否有可能事先知道使用Symfony功能是否存在任何潜在的外键违规?然后我可以中断删除过程并显示一个很好的错误或消息或其他东西。

或者,如果有人能想出任何其他方法来做到这一点,我肯定会接受这些想法。

1 个答案:

答案 0 :(得分:1)

在我们软件工程部的项目中,我们检查了FK违规行为。在控制器中,我们设置了一个私有函数,用于检查给定实体是否存在FK违规,如果此函数成功,我们可以尝试删除该实体。

函数本身没有做太多,只是通过实体关系,并检查是否存在任何引用的实体。如果是,则应在删除前将其删除。

如果你想删除引用的entites,你也可以设置关系的级联:

@ORM\ManyToOne(targetEntity="Entity", cascade={"remove"})