2

フォームを再利用できるように、クラスに基づいてフォーム クラスを作成することを提案するドキュメント。また、 を使用してすべてのフィールドをレンダリングするのではなく、フォーム クラスから個別にさまざまなフィールドをレンダリングする方法も示します{{ form_widget() }}

簡単なサインアップ ページを作成しているので、ユーザー フォーム クラスのいくつかのフィールドのみを表示したいので、このようにレンダリングします{{ form_widget(form.email) }}

ただし、フィールドを個別にレンダリングしているため、symfony フレームワークで必要な非表示のフォーム フィールド 'CFTOKEN' はレンダリングされません。エラーを取得します:The CSRF token is invalid. Please try to resubmit the form.

ドキュメントには、これについて、または非表示のフォームフィールドを個別にレンダリングする方法については何も言及されていません...

4

3 に答える 3

6
<div style="display: none;">{{ form_rest(form) }}</div>

始めましょう。S2に慣れると、選択肢がたくさんあることがわかります。

たとえば、UserFormTypeのコンストラクターにパラメーターを渡すと、作成するフィールドを簡単に制御できます。

于 2013-01-15T22:15:35.317 に答える
4

これが本当に唯一の方法です..

{{ form_widget(form._token) }}

Symfony のドキュメントが、各フォーム フィールドを個別にレンダリングする方法を示しており{{ form_rest(form) }}、CFtoken のような残りの必須フィールドを生成するために使用する必要があることを示している方法をかなり馬鹿げています。 {{ form_widget() }} を使用する代わりに、それらを個別に行う

GRRR

于 2013-01-15T20:47:29.583 に答える
2

残りのフィールドを {{ form_rest(form) }} でレンダリングします。

http://symfony.com/doc/2.0/reference/forms/twig_reference.html#form-rest-view-variables

于 2013-01-15T20:35:22.083 に答える