【发布时间】:2015-10-14 07:53:09
【问题描述】:
我有一个向视图返回表单的控制器操作。提交表单时,此表单的验证需要在与返回表单的操作不同的操作中完成。
这是一个返回表单的动作示例
/**
* @Route("/AjaxAddQuestionForm/{section}")
* @Template
* @ParamConverter("section", class="AppBundle:Section")
*/
public function ajaxAddQuestionFormAction(Request $request, $section)
{
$question = new Question();
$question->setSection($section);
$addQuestionForm = $this->createForm(new AddQuestionType(), $question);
return array(
'section' => $section,
'addAjaxQuestionForm' => $addQuestionForm->createView(),
);
}
这就是我目前试图让验证生效的操作。
/**
* @Route("/edit/{form}")
* @Template()
* @ParamConverter("form", class="AppBundle:Form")
*/
public function editAction(Request $request, $form)
{
$em = $this->getDoctrine()->getManager();
(...)
$questionForm = new Question();
$addQuestionForm = $this->createForm(new AddQuestionType(), $questionForm);
$addQuestionForm->handleRequest($request);
if ($addQuestionForm->isValid()) {
$em->persist($questionForm);
$em->flush();
return $this->redirectToRoute('app_form_edit', array('form' => $form_id));
}
(...)
问题是第二个动作中的验证永远不会被调用。知道如何让这个工作正常吗?
【问题讨论】:
-
您是否将表单操作设置为更正路线?
-
这是什么意思?我该怎么做?
标签: php forms validation symfony