У меня есть некоторая сложная проверка с моей формой symfony, и мне нужно уметь назначать ошибку для определенного поля из моего контроллера. Прямо сейчас, у меня глобальные ошибки работают следующим образом:
$error = new formerror("There is an error with the form"); $form->addError($error);
Но это создает глобальную ошибку, а не привязанность к определенному полю.
Есть ли способ выбросить ошибку из определенного поля из моего контроллера?
Благодаря некоторой помощи 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;