Symfony 2: доктринальные ограничения в формах - PullRequest
2 голосов
/ 14 марта 2012

У меня есть объект с полем url, этот объект сохраняется в базе данных, отправляющей форму на основе того же объекта.

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

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

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

1 Ответ

2 голосов
/ 14 марта 2012

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

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

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

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

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

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

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

...