Symfony 2.3什么时候开始发布事件?

d00*_*001 1 php symfony symfony-2.3

有一个类似的问题,但它可能已经过时,因为它说它适用于Symfony 2.0.Symfony2表单事件的描述?

Symfony2 2.3支持以下事件:

const PRE_SUBMIT = 'form.pre_bind';
const SUBMIT = 'form.bind';
const POST_SUBMIT = 'form.post_bind';
const PRE_SET_DATA = 'form.pre_set_data';
const POST_SET_DATA = 'form.post_set_data';
Run Code Online (Sandbox Code Playgroud)

这些事件是什么时候在Symfony的书中所示的例子中被解雇的?

public function newAction(Request $request)
{
    // just setup a fresh $task object (remove the dummy data)
    $task = new Task();

    $form = $this->createFormBuilder($task)
        ->add('task', 'text')
        ->add('dueDate', 'date')
        ->add('save', 'submit')
        ->getForm();

    $form->handleRequest($request);

    if ($form->isValid()) {
        // perform some action, such as saving the task to the database

        return $this->redirect($this->generateUrl('task_success'));
    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

Rya*_*yan 5

当您打电话时会触发事件,$form->submit($data)或者在您打电话时触发事件,如果请求是GET或POST $form->handleRequest($request),则会调用(默认情况下)submit()方法.事件的顺序是:

PRE_SET_DATA
POST_SET_DATA
PRE_SUBMIT
SUBMIT
POST_SUBMIT

如果查看Symfony\Component\Form\Form并检查submit()方法,您将看到触发事件的位置.