Symfony forms, error bubbling

php, symfony

Solution

Messages are attached to a field only when validator is attached to corresponding property. Your validator is attached to a method of the class so error is indeed global.

You should to something like that:

use ...\TitleValidator as AssertTitleValid;

class MyEntity
{
    /**
     * @AssertTitleValid
     */
    private $title;
}

And create your own TitleValidator class.

Problem

I have a problem with forms' error bubbling. One field in my form is defined like this: ``` $formBuilder->add('title','text', 'required' => true, 'error_bubbling' => false, ) ) ``` I would like to add a validator like this to this field: ``` /** * @Assert\True(message = "Bad title.") */ public function getTitleCorrect() { /* ... */ return false; } ``` It works ok, but the error message shows up on top of the form, not in the field row. In the Twig template this error message is rendered by `{{form_errors(form)}}` as a global error. When I use `{{form_errors(form.title)}}`, it does not print my error. What can I do to change the assignment of the error?

Original source