Laravel 5.1サイトをLaravel 5.2.39に更新しています。私は "承認された"アップグレードプロセス(特にミドルウェア)で多くの問題を抱えていたので、新しいLaravel 5.2サイトを作成し、旧サイトのビュー、モデル、コントローラを移動しました。Laravel 5.2 token mismatch
<div class="form-group">
{!! Form::label('name', 'Name') !!}
{!! Form::text('name', old('name'), ['placeholder' => 'Name', 'class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('email', 'Email') !!}
{!! Form::email('email', old('email'), ['placeholder' => 'Email', 'class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('phone', 'Phone') !!}
{!! Form::text('phone', old('phone'), ['placeholder' => 'Phone', 'class' => 'form-control']) !!}
</div>
{{ csrf_field() }}
<div class="form-group">
{!! Form::submit('Submit', ['class' => 'btn btn-default btn-small']) !!}
<input type="reset" class="btn btn-primary btn-small" />
</div>
と私は私をクリアしています
TokenMismatchException in VerifyCsrfToken.php line 67:
私のフォームはそれらに({{ csrf_field() }}
を使用して)トークンを持っている:それは私がトークン不一致例外を取得任意のフォームを送信する場合を除き、動作しているようですまた、タイムアウトしないように、config/session.php
lifetime
を高い数値に設定しようとしました。
これはホームステイボックスで実行されています。
どのようなアイデアを試してみませんか?
編集:ここで問題
Route::resource('contact', 'ContactController');
EDIT2でのルートがあります:ここでルートファイルです。私はLaravel 5.2のWebミドルウェアでルートをラップする必要があるとは思わないが、同じエラーで両方の方法で試した。コントローラの作成アクションで$request->session()->token()
のダンプ
Route::group(['middleware' => ['web']], function() {
Route::get('/', '[email protected]');
Route::resource('account', 'AccountController');
Route::resource('contact', 'ContactController');
});
は、フォームにページ上の現在のセッショントークンを示しています。これは、フォームに追加されたのと同じトークンです(ビューソースでチェックされています)。
しかし、それがIlluminate\Foundation\Http\Middleware\VerifyCsrfToken::tokensMatch()
クラスになると、私はセッショントークンをダンプし、フォームトークンとは異なります。つまり、これらは決して一致しません。ここで何を期待するか分からない。
あなたはそのフォーラムの '' '' '' 'のルートを表示してもよろしいですか? – xdevnull
@ xdevnull--それは 'resource'ルート上にありますが、私は自分の答えを編集します。ありがとう – user101289
@ user101278彼らはWeb Group Middlewareの下にいますか? – xdevnull