如何检查控制器中的唯一实体



在持久化我的实体之前,我想根据三个字段检查它是否还不存在。我知道如何使用注释"UniqueEntity",但它对我不起作用,因为我不能使用传统的"formType"。总而言之,我的问题是:在symfony 2中,在控制器中执行唯一实体检查的最佳方法是什么?

我已经考虑过获取一个 Id 数组,然后使用"in_array"函数来决定是否持久化我的实体。但我不确定这种方法的效率。

我希望我的数据库中已经存在的实体(根据 3 个字段(不会被持久保存。

谢谢你的回答。

这不是一个很好的方法,但如果你不能使用 UniqueEntity ,你可以在你的仓库上执行一个findBy,并决定是否保留你的实体。

$entityExists = $em->getRepository('MyBundle:MyEntity')->findBy(array('field1' => $value1,'field2' => $value2,'field3' => $value3));

最新更新