2013-04-11 122 views
0

我有一个与许多其他实体(例如产品或类别)有关的实体(例如图像)。我想知道如果某个关系存在于别的地方,哪一个是防止删除实体的最好方法(例如,如果某个关系与产品相关,我不应该删除它)。我的想法是在存储库类中搜索关系并返回结果,或者在实体的preRemove生命周期事件中执行“某事”。哪个是最好的Symfony2防止删除相关实体的方法?防止删除实体

+0

我想最好的方法是搜索相关的实体(如果有的话),然后实现自己的逻辑。 – DonCallisto 2013-04-11 21:33:04

回答

1

只要没有设置级联删除,任何定向实体都将防止删除相关实体。如果你的关联不是双向的,你也必须从背面查询。

要扩展CJ的答案,您可以删除删除链接,但是您也必须检查控制器中的实体,因为任何URL黑客都可以删除一个对象,如果它的ID是已知的。

0

我会建议你可以更好地禁用实体之间存在关系时的表单删除链接。通过这种方式,您甚至可以让客户理解存在相关实体,并且在删除关系之前不应将其删除。

您可以在删除它之前始终检查实体,以及在实际调用symfony中的某个进程时,您实际上可以访问该实体的所有对象的整个对象。所以你可以在那个特定点检查它并做出条件陈述。

我个人认为,您不应该尝试导入过多的库函数来处理可能由您没有的小事情。这将使你的代码更容易理解,甚至更轻,因为包括额外的库的前景很可能会超过你所需要的