Переопределение сообщений о проверке формы на symfony2

Как переопределить сообщения проверки формы в symfony2. Хотя есть класс классов, связанных с файлами validation.xml. Я думаю, что он проверяет форму на основе html5.

"Пожалуйста, сопоставьте запрошенный формат", "Пожалуйста, заполните это поле". Есть ли способ переопределить эти сообщения проверки.

Пожалуйста, помогите мне в этом отношении, я застрял больше дня, так как я абсолютно не знаком с symfony

Ответ 1

Те сообщения, которые вы видите, являются сообщениями проверки HTML5, которые создаются браузером. Если вы хотите переопределить их, вам нужно добавить атрибут oninvalid во входной тег, связанный с этим полем. Вы можете сделать это двумя способами:

В вашем контроллере или типе формы добавьте этот атрибут в поле формы:

$builder->add('email', 'email',array(
    'attr'=>array('oninvalid'=>"setCustomValidity('Would you please enter a valid email?')")
));

Или, в своем шаблоне ветки, добавьте этот атрибут при рендеринге поля формы:

{{ form_row(form.email, { 'attr': {'oninvalid': "setCustomValidity('Please give me a nice email')"} }) }}

Ответ 2

Вы можете изменить сообщение каждого валидатора с помощью опции сообщения при объявлении assert:

/**
     * @ORM\Column(type="string", length=255, unique=true)
     * @Assert\NotBlank(
     *     message="You have to choose a username (this is my custom validation message).",
     *     groups={"registration", "account", "oauth"}
     * )

Также вы можете применить перевод, создав файл MyBundle/Resources/translations/validators.fr.xliff