2015-05-16 3 views
1

У меня есть событие PRE_SUBMIT, внутри я пытаюсь исправить строку, если что-то кажется неправильным. В этом случае я хочу использовать «addError» в определенном поле в некоторых случаях.Symfony 2.6: addError внутри события PRE_SUBMIT

Если я:

$form->addError(new \Symfony\Component\Form\FormError('my message'));

"мое сообщение" появляется, но если я пытаюсь сделать:

$form->get('my_field_name')->addError(new FormError('my message'));

"мое сообщение" никогда не появляется, несмотря на я ставлю все i Twig.

У вас есть идея, что не так?

ответ

0
$form->addError(new \Symfony\Component\Form\FormError('my message')); 

и

$form->get('my_field_name')->addError(new FormError('my message')); 

две разные вещи.

В первом случае вы добавляете сообщение об ошибке в свой элемент формы, который вы можете отобразить с помощью {{ form_error(form) }} в своем шаблоне. Во втором случае вы добавляете ошибку в определенное поле вашей формы, которое вы можете отображать с помощью {{ form_error(form.my_field_name) }}.

Если вы хотите ошибка установить на my_field_name, который будет отображаться в форме, вы должны использовать опцию error_bubbling на своем поле http://symfony.com/fr/doc/current/reference/forms/types/form.html#error-bubbling

+1

Что вы сказали, что я понимаю, когда я пытался, но в моем случае, когда я сделал '{{form_error (form.my_field_name)}}', несмотря на то, что я добавляю ошибку в определенное поле, этого не было. Тогда я знаю об ошибке_bubling, но это не отвечает на вопрос. – Draeli

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