Validation 如果在Symfony2中无效,如何重定向到有错误的表单?
如果表单对Symfony2无效,我不知道如何将错误重定向到表单 因此,我在实体中使用断言,如下所示:Validation 如果在Symfony2中无效,如何重定向到有错误的表单?,validation,symfony,Validation,Symfony,如果表单对Symfony2无效,我不知道如何将错误重定向到表单 因此,我在实体中使用断言,如下所示: /** * @ORM\Column(type="string", length=255, nullable=false) * @Assert\NotBlank() */ private $title; 这是我的createAction方法: public function createAction(Request $request) { $task = new Task();
/**
* @ORM\Column(type="string", length=255, nullable=false)
* @Assert\NotBlank()
*/
private $title;
这是我的createAction方法:
public function createAction(Request $request)
{
$task = new Task();
$form = $this->createForm(new TaskType(), $task);
if ($request->getMethod() == 'POST') {
$form->handleRequest($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($task);
$em->flush();
}
// What should I do here if the form is not valid
$this->get('session')->getFlashBag()->add('success', 'The task has been added successfully!');
return $this->redirect($this->generateUrl('crm_tasks'));
}
return $this->render('LanCrmBundle:Task:create.html.twig', array(
'form' => $form->createView(),
));
}
如何将错误返回到表单?您应该在if($form->isValid)条件中包含FlashBag()和return语句
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($task);
$em->flush();
$this->get('session')->getFlashBag()->add('success', 'The task has been added successfully!');
return $this->redirect($this->generateUrl('crm_tasks'));
}
如果无效,用户将被重定向到表单,如果Symfony发现错误,则显示错误。谢谢您的回答。