2016-11-04 12 views
0

私はLaravel 5.3laravelcollective/htmlフォームヘルパーを使用しています。 TokenMismatchExceptionフォームを再送信するとき

検証が、それは私が同じフォームを再送信場合はその後、再び、私はTokenMismatchExceptionを取得しますreturn redirect()->back()->with

を使用して、同じフォームに戻ります失敗した場合、私は、フォームを送信

は、どのようなhappennedはCSRFトークンがなかったことですフォームがリロードされた後は更新されません。

どのようにしてトークンをリフレッシュすることができますか?

{!! Form::open(['url'=>'/user/create', 'method'=>'post', 'id'=>'create']) !!} 

自動的にトークンのフィールドを追加します。私は、次を使用し、フォームを開くには

更新11/07

しかし、また、私は手動でトークンを追加しようとしているが、このように:ここで

{!! Form::open(['url'=>'/user/create', 'method'=>'post', 'id'=>'create']) !!} 
{!! Form::token() !!} 

トークンは、実際に両方のトークンが同じである、二回作成されます。

+0

laravelがリダイレクトにトークンをリフレッシュしていないため、複数の理由が考えられます: は、代わりに私はそれは、フィルタ_tokenがそうであるように、働く以下のためにそれを変更しました。フォームのコードスニペットを共有できますか?また、トークンを追加する方法を試すこともできます。{{Form :: token(); }}それをあなた自身の隠しフォームフィールドとして追加する代わりに。それが役に立ったら教えてください。 –

+0

Shujaありがとう、私はあなたの提案で質問を更新しましたが、それでも問題は解決しません –

答えて

0

問題は、_tokenという値をビューに戻していたことでした。私は何をやっていた されました:

$要求 - >入力( '_トークン')がフィルタリングされていなかった
return redirect() 
->back() 
->with(
['errors' => $validator->errors()->all()] 
+ $request->input() 
); 

return redirect() 
->back() 
->withErrors($validator->errors()->all()) 
->withInput($request->input()); 
関連する問題