我在網站的所有網頁簡單的形式:用戶名,密碼,[請登錄]Symfony2的網站形式?
我試圖使用簡單的HTML,但我得到
The CSRF token is invalid. Please try to resubmit the form
主意,使表單中的每個動作似乎壞。做網站形式的良好做法是什麼?
我在網站的所有網頁簡單的形式:用戶名,密碼,[請登錄]Symfony2的網站形式?
我試圖使用簡單的HTML,但我得到
The CSRF token is invalid. Please try to resubmit the form
主意,使表單中的每個動作似乎壞。做網站形式的良好做法是什麼?
你要做這樣說:
首先,我想你有一些基本模板文件,如layout.html.twig,所有其他頁面擴展它。例如:
// Resources/views/layout.html.twig
<doc ... bla blah>
<title>My site</title>
...(js, css)...
<body>
<div id="top">
{% render url("site_wide_form") %}
</div>
{% block content %}
{% endblock content %}
</body>
你需要控制器將處理您的形式:
//Controller/SitewideController.php
/**
* @Route("/some/url/here", name="site_wide_form")
* @Template("yourbudle:folder:site_wide_form.html.twig")
*/
public function someAction()
{
..... your code for form, process submission etc ...
return ["form"=>$form->createView()] ;
}
和模板文件:
// site_wide_form.html.twig
<form action="{{ path("site_wide_form") }}" method="post">
{{ form_widget(form) }}
</form>
就是這樣。閱讀此瞭解渲染標記:http://symfony.com/doc/2.2/book/templating.html#embedding-controllers
CSRF令牌丟失。在你的模板中(我假設你使用Twig)。你可以告訴Symfony2中使用所有剩餘的表單元素來呈現:
{{ form_rest(form) }}
或者你也可以渲染只是CSRF令牌:
{{ form_row(form._token) }}
變量「形式」不存在.... html.twig第74行我明白,這是因爲我製作純HTML,而不是創建窗體。但是在每個動作中創建表單對象似乎都是錯誤的。 – luchaninov
謝謝。看起來像我想要的 – luchaninov