Есть два типа событий:
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_data DataEvent
срабатывает до того поля заполнены данными по умолчанию. Срабатывание Symfony\Component\Form\Form::setData()
form.post_set_data DataEvent
срабатывает после того, как поля заполнены данными по умолчанию. Срабатывание Symfony\Component\Form\Form::setData()
form.bind_client_data FilterDataEvent
срабатывает перед передачей данных связан с формой. Срабатывание Symfony\Component\Form\Form::bind()
form.bind_norm_data FilterDataEvent
срабатывает после данных были нормализованы. Запущено Symfony\Component\Form\Form::bind()
. См Symfony\Component\Form\Extension\Core\EventListener\FixUrlProtocolListener
(добавленный в UrlType
для примера)
form.set_data FilterDataEvent
срабатывает в то время как данные по умолчанию обязательными. Задействовано Symfony\Component\Form\Form::setData()
Я бы рекомендовал просунуть вокруг самого класса Form, чтобы лучше понять, когда эти события активированы, и как вы можете их использовать.
Действительно благодарю вас, ответ принят! Между тем у меня возникли проблемы с событиями формы, если у вас есть свободное время, возможно, вы можете немного помочь: http://stackoverflow.com/questions/9661026/accessing-a-form-field-from- a-subscriber-of-a-form-event-in-symfony2 – Polmonino
Следует отметить, что это описание событий формы действует только для Symfony 2.0 Form Component. Следующие события устарели с 2.1 и будут удалены с 2.3: 'form.bind_client_data',' form.bind_norm_data', 'form.set_data'. Начиная с версии 2.1, слушатели форм-событий теперь получают объект 'FormEvent' вместо устаревших объектов' FilterDataEvent' и 'DataEvent', которые будут удалены в 2.3. –
Эй @xanido, ваши ссылки сломаны. – Mick