2017-07-10 20 views
0

リンクをクリックすると、特定のサブカテゴリからすべての商品を表示しようとしています。私はララベルで新しくて、何が起こっているのかわからないのはTokenMismatchExceptionです。この特定のバージョンは4.2です。サブカテゴリーLaravelから商品を選択

これはこれはルート

Route::get ('/admin/subCategory/products/{subcatId}', ['uses' => '[email protected]', 'before' => 'csrf|admin']); 

され、コントローラ

public function quickEdit($subcatId) 
{  
    $subcatProducts = SubCategories::with('products')->findOrFail($subcatId); 
    return View::make('site.admin.quick_sub_cat_products', [ 
     'subcatProducts' => $subcatProducts 
    ]);   
} 

かなり簡単な作業では、まだこの私がエラーログ

で得るものです私のビュー・リンク

<a href="{{ URL::to('/admin/subCategory/products/' . $subcategory->sub_cat_id) }}">Subs</a> 

です

TokenMismatchException

+0

ルートをCSRFトークンミドルウェアで保護していますか? –

+0

これは管理者に記録されている必要があるため、はい、はいと思います。しかし、私はログインしていて、もう1つの管理リンクから別のリンクを開こうとしています。他のすべてのリンクは正常に動作しています – Stanly

+0

CSRF保護は、ログインしていないユーザだけではありません。これは、エンドポイントが他のWebサイトから操作されるのを防ぐことです。たとえば、「」[試してみてください](https://jsfiddle.net/7af015qn/) –

答えて

0

laravelあなたがルートでクラウズ前に CSRF を言及しているためTokenmismatchExceptioを投げます。

Route::get ('/admin/subCategory/products/{subcatId}', ['uses' => '[email protected]', 'before' => 'csrf|admin']); 

csrfを削除しようとしています。

これを試してみませんか?ブラウザのクッキーを最初からクリアする。リンクをテストするだけでなく、これを行うこともできます。 chmod 777 ./storage/framework/sessions

+0

他のサイトのイメージタグでも構いません。他のリンクやhrefはすべて同じで、動作しています。なぜこれが違うのですか? – Stanly

+0

このリンクをクリックすると、ユーザーはシステムにログインしたかどうかを確認できますか? –

+0

ログに記録されます。管理者ユーザーです。管理者が記録され、サブカテゴリのページに表示され、サブカテゴリの名前をクリックすると、このサブカテゴリの下にある製品が表示されます。どちらのページも 'csrf | admin'を使用しています – Stanly

0

このミドルウェアに記載されているすべてのルートにはcsrfトークンが必要なため、Webミドルウェアにはルートを含めないでください。

Route::get ('/admin/subCategory/products/{subcatId}', ['uses' => '[email protected]']); 
+0

このようにログインしていないユーザーでもページにアクセスできます。 – Stanly

+0

別のミドルウェアを追加して、ログインしているユーザーを確認することができます。 RedirectIfNotAuthenticatedのようなもの –

関連する問題