2017-11-28 29 views
-2

フィールドを非表示にするために、edit.html.twigテンプレートを変更しています。 コントローラのeditActionを変更してテンプレートもロードしました。 私はCSRFに問題があります。私がフォームを提出すると、トークンCSRFは無効です。私はフォームをリロードしようとしましたが、私は同じ結果を持っています。 (このモジュールはMOST 1.1.0とZK 2.0.2で作成され、edit.html.twigを変更しています)Zikula CSRFトークンが無効

どうしたの?

削除したフィールドを挿入しようとしましたが、問題は解決しません。

メッセージエラー:「CSRFトークンが無効です。フォームを再送信してください。」 _token( "のSymfony \コンポーネント\フォーム\拡張\コア\タイプ\ HiddenType" )

私は、トークンは、テンプレートで作成されていないことを検出しました。私はこのコードを持っている場合、トークンが生成されます。 {{form_end(フォーム)}}
私はコードを変更する場合: {{form_end(フォーム、{ 'render_rest':偽})}} トークンが生成されません。

だから、私は今、トークンが生成されますが、私は、フォームを送信すると、私は同じメッセージを持っている「CSRFトークンが無効です {{form_widget(form._token)}} を追加しました。再送信してみてください。フォーム。"

+2

残念ながら、私たちはより多くの情報をお手伝いできません。 https://stackoverflow.com/help/how-to-askを読んで、入手している特定のコードとエラーメッセージを提供してください – MEmerson

+0

私はコードを使って投稿を更新しています。 – Krator

答えて

0

あなたは再び

{{ form_end(form) }} 

を使用し、不要なフィールドを削除するために、次のことを行う必要があります。

編集modules/YourVendor/YourAppModule/Form/Type/YourFormType.phpとのようなものを追加:

skipFiles " 
    Form/Type/YourFormType.php 
" 

これは発電ウォンを保証します。最後に、モデルの設定コンテナのskipFilesプロパティに改正されたファイルへのパスを追加し

use Symfony\Component\Form\FormBuilderInterface; 

... 

/** 
* @inheritDoc 
*/ 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    parent::buildForm($builder, $options); 

    $builder->remove('yourUnwantedField'); 
} 

をこのファイルを再作成して上書きしないようにすることで、カスタムコードも再生成後も保持されます。

+0

正しいですが、私はトークンと同じメッセージを持っています。私は自分の投稿を編集しています。 – Krator

+0

私はテンプレートの非表示フィールドを欲しいだけではありません。私は答えが私の目的のために有効でないように、より多くの詳細を変更すると思う..ありがとう。 – Krator

関連する問題