Opis zdarzeń formularza Symfony2?
Jest to klasa FormEvents
z repozytorium Symfony2 na GitHubie. Jest to powiązane z głównym artykułem Jak dynamicznie generować formularze za pomocą zdarzeń formularza .
Czy ktoś wie dokładnie kiedy te wydarzenia są nazywane in the flow?
namespace Symfony\Component\Form;
/**
* @author Bernhard Schussek <[email protected]>
*/
final class FormEvents
{
const PRE_BIND = 'form.pre_bind';
const POST_BIND = 'form.post_bind';
const PRE_SET_DATA = 'form.pre_set_data';
const POST_SET_DATA = 'form.post_set_data';
const BIND_CLIENT_DATA = 'form.bind_client_data';
const BIND_NORM_DATA = 'form.bind_norm_data';
const SET_DATA = 'form.set_data';
}
1 answers
Istnieją dwa rodzaje zdarzeń:
DataEvent - dostęp tylko do odczytu danych formularza. Zdarzenia " Pre " i "Post" są tylko do odczytu.
FilterDataEvent - Zdarzenie umożliwiające modyfikację danych formularza.
Forma.pre_bind
DataEvent
wywołane przed powiązaniem danych z formularzem. Wywołane przez Symfony\Component\Form\Form::bind()
Forma.post_bind
DataEvent
wywołane po powiązaniu danych z formularzem. / Align = "left" / Symfony\Component\Form\Form::bind()
Forma.pre_set_data
DataEvent
wyzwalane przed wypełnieniem pól domyślnymi danymi. Wywołane przez Symfony\Component\Form\Form::setData()
Forma.post_set_data
DataEvent
uruchamiane po wypełnieniu pól domyślnymi danymi. Wywołane przez Symfony\Component\Form\Form::setData()
Forma.bind_client_data
FilterDataEvent
wywołane, zanim dane zostaną powiązane z formularzem. Wywołane przez Symfony\Component\Form\Form::bind()
Forma.bind_norm_data
FilterDataEvent
uruchamiane po znormalizowaniu danych. Wywołane przez Symfony\Component\Form\Form::bind()
. Zobacz Symfony\Component\Form\Extension\Core\EventListener\FixUrlProtocolListener
(dodano by the UrlType
for an example)
Forma.set_data
FilterDataEvent
wywołane podczas wiązania domyślnych danych. Wywołane przez Symfony\Component\Form\Form::setData()
Polecam poszperać w samej klasie Form, aby lepiej wyczuć, kiedy te zdarzenia są wyzwalane i jak możesz ich używać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-22 07:54:05