Как проверить уникальный объект в контроллере - PullRequest
0 голосов
/ 29 апреля 2019

Прежде чем сохранить мою сущность, я хотел бы проверить, не существует ли она по трем полям. Я знаю, как использовать аннотацию «UniqueEntity», но она не работает для меня, потому что я не могу использовать обычный «formType». Подводя итог, мой вопрос: в Symfony 2, как лучше всего выполнить проверку уникального объекта в контроллере?

Я уже думал о том, чтобы получить массив Id, а затем использовать функцию "in_array", чтобы решить, сохранять свою сущность или нет. Но я не уверен в эффективности этого метода.

Я ожидаю, что сущности, которые уже существуют в моей базе данных (согласно 3 полям), не сохраняются.

Спасибо за ваши ответы.

1 Ответ

0 голосов
/ 18 мая 2019

Это не очень хороший подход, но если вы не можете использовать UniqueEntity, вы можете выполнить findBy в своем хранилище и принять решение сохранить свою сущность или нет.

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