私はこのフォームForm
を含むページindex.html.twig
を持っています。これは検証され、結果はページsuccess.html.twig
に表示されます。今度は、success.html.twig
ページにindex.html.twig
からフォームによって渡された値を含むフォームが含まれている新しい要件があります。ユーザーが新しいフォームを希望する場合は、ユーザーがsuccess.twig.html
から直接検索できるようにする必要があります。要件は、hostel worldからインスピレーションを受けています。symfonyの別のコントローラーにフォームを送信
質問:
- 私は私の現在の考え方が
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()));
}
私は成功のための新しいアクションを作成するのが正しいと思います。フォームの作成時には、$ form = $ this-> createForm(new Event()、$ event); 'を試すことができます。そこで、新しいフォームに 'indexAction'から受け取った値を入力します。 – mickdev