Reputation: 2190
There is a similar question but it might be outdated since it says it applies to Symfony 2.0. Description of Symfony2 form events?
The following events are supported in 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';
When are these events fired in the example shown below from Symfony's book?
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'));
}
// ...
}
Upvotes: 1
Views: 1800
Reputation: 5016
The events are triggered when you call $form->submit($data)
or in your case when you call $form->handleRequest($request)
which will call (by default) the submit()
method if the request is a GET or POST. The order of events is:
PRE_SET_DATA
POST_SET_DATA
PRE_SUBMIT
SUBMIT
POST_SUBMIT
If you look in Symfony\Component\Form\Form
and examine the submit()
method, you will see where the events are triggered.
Upvotes: 5