Documentação do Symfony - versão 3.1
Renderizada do repositório symfony-docs-pt-BR no Github
New in version 2.3: O método handleRequest()
foi introduzido no Symfony 2.3.
Com o método handleRequest()
, é realmente fácil lidar com submissões de
formulário:
use Symfony\Component\HttpFoundation\Request;
// ...
public function newAction(Request $request)
{
$form = $this->createFormBuilder()
// ...
->getForm();
$form->handleRequest($request);
if ($form->isValid()) {
// perform some action...
return $this->redirect($this->generateUrl('task_success'));
}
return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
'form' => $form->createView(),
));
}
Tip
Para ver mais sobre esse método, leia book-form-handling-form-submissions.
New in version 2.3: Antes do Symfony 2.3, o método submit()
era conhecido como bind()
.
Em alguns casos, você quer um controle melhor sobre quando exatamente o formulário é enviado
e quais dados são passados para ele. Em vez de usar o
método handleRequest()
, passe os dados submetidos diretamente ao
submit()
:
use Symfony\Component\HttpFoundation\Request;
// ...
public function newAction(Request $request)
{
$form = $this->createFormBuilder()
// ...
->getForm();
if ($request->isMethod('POST')) {
$form->submit($request->request->get($form->getName()));
if ($form->isValid()) {
// perform some action...
return $this->redirect($this->generateUrl('task_success'));
}
}
return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
'form' => $form->createView(),
));
}
New in version 2.3: Antes do Symfony 2.3, o método submit
era conhecido como bind
.
Antes do Symfony 2.3, o método submit()
aceitava um objeto Request
como
um atalho conveniente para o exemplo anterior:
use Symfony\Component\HttpFoundation\Request;
// ...
public function newAction(Request $request)
{
$form = $this->createFormBuilder()
// ...
->getForm();
if ($request->isMethod('POST')) {
$form->submit($request);
if ($form->isValid()) {
// perform some action...
return $this->redirect($this->generateUrl('task_success'));
}
}
return $this->render('AcmeTaskBundle:Default:new.html.twig', array(
'form' => $form->createView(),
));
}
Passar o Request
diretamente para
submit()
ainda funciona, mas está
obsoleto e será removido no Symfony 3.0. Ao invés, você deve usar o método
handleRequest()
.