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';
}
Author: j0k, 2012-03-11

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ć.

 66
Author: xanido,
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