2012-03-13 2 views
2

У меня есть объект с полем url, этот объект сохраняется в базе данных uppon, отправляя форму на основе того же объекта.Symfony 2: Ограничения Doctrine в формах

Я могу установить ограничения на тип формы в validation.yml наряду с пользовательскими сообщениями, такими как NotBlank и Url. Все в порядке. Но когда я пытаюсь сохранить сущность, которая уже существует в БД, я получаю сообщение о том, что значение уже существует (url).

Как настроить настраиваемое сообщение для этого ограничения UniqueEntity?

Я попытался добавить UniqueEntity в validation.yml, но он находится в другом пространстве имен, и я не могу понять, как это работает или как его настроить. Он есть по умолчанию, couse url определяется как уникальное поле в первоначальной аннотации объекта, но как изменить сообщение об ошибке?

ответ

2

Я только что нашел решение своей проблемы.

Все проверки могут быть определены в validation.yml, но поскольку я использую аннотации для определения своих объектов, лучше вставлять все проверки, сообщения и т. Д. Внутри этих аннотаций.

Этого было достаточно, чтобы установить @Assert\NotBlank для не пустого поля и @ORM\UniqueEntity(message="my custom error") за уникальную проверку.

Я извиняюсь за наводнения сайта с моим вопросом, но я надеюсь, что кто-то может оказаться полезным ..

P.S .: аннотация или YML нет никакой разницы, установка такой же. Я полагаю, в моем случае это должно было быть что-то вроде:

Namespace\Class: 
    constraints: 
     - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: 
      fields: url 
      message: "My custom message" 

Это довольно гибкая, подумал я не вижу, как мы могли бы установить различные сообщения, если различные поля уже присутствуют в БД ...

Смежные вопросы