我有一个页面index.html.twig
在提交时包含Form
此表单,经过验证并且结果显示在页面success.html.twig
中。现在我有了一个新的要求,其中页面success.html.twig
本身包含一个Form,该Form应包含index.html.twig
表单传递的值,如果用户想要新表单,还应允许用户执行直接从success.twig.html
搜索。该要求的灵感来自hostel world。
问题:
success.html.twig
创建一个新动作并将表单提交给thatAction,而不是从success.html.twig
的动作中呈现index.html.twig
。这是对的吗?我该如何实施呢?代码(部分):
/**
* @Route("/", name="homepage")
*/
public function indexAction(Request $request)
{
$event = new Event();
$form = $this->createForm(MyForm::class, $event);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
$event->setPlace($form["place"]->getData());
$event->setDate($form["date"]->getData()->modify('+12 hours'));
return $this->render('default/frontend/success.html.twig',
array('events' => $events, 'cityName' => $cityName, 'cityImage' => $cityImage)
);
}
return $this->render('default/frontend/index.html.twig', array('form' => $form->createView()));
}
答案 0 :(得分:0)
有两个不同的操作是有意义的 - 至少对于不同的请求类型(GET,POST等)。
只有一件事是建议:$ form-> isValid()已经有一个isSubmitted() - 检查内部。因此无需检查是否已提交。