Я добавил к своей сущности следующее ограничение:
* @ORM\Table(name="link", uniqueConstraints={@ORM\UniqueConstraint(name="unique_link_idx", columns={"first_form_id", "first_question_id","last_form_id","last_question_id"})})
* @UniqueEntity(fields={"firstForm", "firstQuestion","lastForm","lastQuestion"}, message="Cette liaison existe déjà !")
* @ORM\Entity(repositoryClass="Ineat\LinkQuestionBundle\Entity\LinkRepository")
Ограничение UniqueEntity работает хорошо, потому что перед его добавлением при попытке вставить ту же самую сущность в БД у меня было ограничение целостности DBALException abount. С тех пор у меня больше не было этого исключения, форма не проверяется, но {{ form_errors(form) }}
не выводит никаких сообщений.
После проверки контроллер $form->getErrors()
возвращает пустой массив, а $form->getErrorsAsString()
содержит ограничение UniqueENtity.
Как я могу отобразить сообщение об ошибке ограничения UniqueEntity
getErrorsAsString()
обращается к тому же свойству, что иgetErrors()
, а именно кthis->errors
в Symfony / Component / Form / Form, поэтому$form->getErrors()
возврат пустого массива невозможен. Взгляните на github.com/ symfony / symfony / blob / master / src / Symfony / Component / - person Nicolai Fröhlich   schedule 25.06.2013