Я пытаюсь создать простую форму в symfony, но каждый раз, когда я пытаюсь представить, я получаю следующую ошибку:
ERROR: The CSRF token is invalid. Please try to resubmit the form.
После серфинга в Интернете и сокращения кода до почти пустого. Я все еще получаю эту ошибку. Большинство людей, которых я видел с просьбой об этом, решили ошибку, используя следующий код твига
{{ form_rest(form) }}
Проблема в том, что я использую его, это как когда я связываю запрос, он не делает это правильно. Я не знаю, что еще я могу сделать.
Это мой маленький шаблон ветки:
<div><h2>Insert new activity</h2></div> <div> <form id="new-activity" action="{{ path('create') }}" method="post" {{ form_enctype(form) }}> {{ form_rest(form) }} <p> <button type="submit">Submit</button> </p> </form> </div>
Как видите, это довольно маленький код. Это мой код визуализации формы:
/** * Displays a form to create a new Activity entity. * * @Route("/new", name="sucr_new") * @Template() */ public function newAction() { $initialConfig = new SucrConfiguration(); $finalConfig = new SucrConfiguration(); $activity = new SucrActivity(); $data = array("activity" =>$activity, "initialConfig" => $initialConfig, "finalConfig" => $finalConfig); $form = $this->createForm(new ActivityType(), $data); return array( 'data' => $data, 'form' => $form->createView() ); }
И это код, который должен обрабатывать подчинение:
/** * Displays a form to create a new Activity entity. * * @Route("/create", name="create") * @Method("post") * @Template("EusocSucrBundle:Sucr:new.html.twig") */ public function createAction() { $initialConfig = new SucrConfiguration(); $finalConfig = new SucrConfiguration(); $activity = new SucrActivity(); $data = array("activity" =>$activity, "initialConfig" => $initialConfig, "finalConfig" => $finalConfig); $form = $this->createForm(new ActivityType(), $data); if ($this->getRequest()->getMethod() == 'POST') { $form->bindRequest($this->getRequest()); if ($form->isValid()) { return $this->redirect($this->generateUrl('sucr_show', array('id' => 1))); } var_dump($form->getErrorsAsString()); } return array( 'data' => $data, 'form' => $form->createView() ); }
Также обратите внимание, что я вижу скрытый токен в моем браузере.
Есть идеи?