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

时间:2019-04-29 14:46:51

标签: doctrine-query symfony-2.7

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

我已经考虑过要获取一个ID数组,然后使用“ in_array”函数来决定是否保留我的实体。但是我不确定这种方法的效率。

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

谢谢您的回答。

1 个答案:

答案 0 :(得分:0)

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

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