Подтвердить что ты не робот

Добавление ошибки поля от контроллера в symfony2

У меня есть некоторая сложная проверка с моей формой symfony, и мне нужно уметь назначать ошибку для определенного поля из моего контроллера. Прямо сейчас, у меня глобальные ошибки работают следующим образом:

$error = new formerror("There is an error with the form");
$form->addError($error);

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

Есть ли способ выбросить ошибку из определенного поля из моего контроллера?

4b9b3361

Ответ 1

Благодаря некоторой помощи IRC (спасибо @fkrauthan!) я придумал ответ.

Каждое поле в SF2 фактически является экземпляром формы. Что вам нужно сделать, так это получить доступ к объекту формы поля и добавить к нему ошибку. К счастью, symfony предоставляет метод для получения встроенной формы/поля.

Вот мой код:

$error = new FormError("There is an error with the field");
$form->get('field')->addError($error);

Как указывали некоторые люди, вам нужно будет включить класс FormError в верхней части файла: use Symfony\Component\Form\FormError;