Ответ 1
Существует два типа событий:
DataEvent - доступ только для чтения к данным формы. События "Pre" и "Post" доступны только для чтения.
FilterDataEvent - событие, которое позволяет изменять данные формы.
form.pre_bind
DataEvent
, когда данные привязаны к форме. Запущено Symfony\Component\Form\Form::bind()
form.post_bind
DataEvent
запускается после привязки данных к форме. Запущено Symfony\Component\Form\Form::bind()
form.pre_set_dataSTRONG > DataEvent
запускается до заполнения полей данными по умолчанию. Запущено Symfony\Component\Form\Form::setData()
form.post_set_dataSTRONG > DataEvent
запускается после заполнения полей данными по умолчанию. Запущено Symfony\Component\Form\Form::setData()
form.bind_client_dataSTRONG > FilterDataEvent
запускается до того, как данные привязаны к форме. Запущено Symfony\Component\Form\Form::bind()
form.bind_norm_dataSTRONG > FilterDataEvent
срабатывает после нормализации данных. Запущен Symfony\Component\Form\Form::bind()
. См. Symfony\Component\Form\Extension\Core\EventListener\FixUrlProtocolListener
(добавлено в примере UrlType
)
form.set_dataSTRONG > FilterDataEvent
запускается, пока данные по умолчанию привязаны. Запущено Symfony\Component\Form\Form::setData()
Я бы порекомендовал выкрикивать вокруг самого класса Form, чтобы лучше понять, когда срабатывают эти события, и как вы можете их использовать.