Symfony2 Formではまったこと
Actionの分け方がまずったらしい。つい癖で、InputとConfirmとCompleteと作ったんだけど、一つのActionでヨロと言われた。確かに調べてるとそんな感じのが多いのでそのあたりは右に倣う。
しかし、確認画面の作り方がよくわからない。と、いうかTwigでどう書くの??
今回は取り急ぎで動かしたかったので、Entityは省略
Controller側
/** * @access public */ public function caseAction(Request $request) { $formFactory = Forms::createFormFactoryBuilder() ->addExtension(new HttpFoundationExtension()) ->getFormFactory(); $form = $formFactory->createBuilder() ->add('task', 'text') ->getForm(); if ($request->getMethod() == 'POST') { $form->bind($request); return $this->render('SpBundle:Inquire:confirm.html.twig', array('data' => $form->getData(), )); } return $this->render('SpBundle:Inquire:input.html.twig', array( 'form' => $form->createView(), )); }
Twig側
{{ data.task }}
これでいいらしい。今回はとりあえず表示されればOK。登録は別API使うからDctrineは関係しません。最初、bindRequestでエラーになってbindに変えました。2.3と2.0でどっちがどっちに変わったか忘れてたw
あ、ついでに…routingの設定で。
requirements: _method: POST|GET
これ忘れずに。忘れてエラー?!(?--)!(--?)?!ってなった。
hiddenで値持たせておきたいときは、Twigに渡す引数にform追加して
{{ form_widget(form.task, {type: 'hidden'}) }}
で、おk