2017-07-10 8 views
0

Ich versuche, alle Produkte aus bestimmten Unterkategorien anzuzeigen, wenn ich auf den Link klicke. Ich bin irgendwie neu in Laravel und ich bin mir nicht sicher, was hier passiert, wie es heißt TokenMismatchException. Diese spezielle Version ist 4.2.Wählt Produkte aus der Unterkategorie Laravel

Das ist meine Ansicht Link

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

Dies ist Route

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

Und der Controller

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

Ziemlich einfache Aufgabe noch das ist, was ich in Fehlerprotokoll erhalten

TokenMismatchException

+0

Ist die Route mit CSRF-Token-Middleware geschützt? –

+0

Nun ich denke ja, weil es im Admin eingeloggt sein muss. Aber ich bin eingeloggt und von einem Admin-Link versuche ich einen anderen zu öffnen. Alle anderen Links funktionieren normal – Stanly

+0

CSRF-Schutz ist nicht nur für nicht eingeloggte Benutzer. Es geht darum, zu verhindern, dass der Endpunkt von anderen Websites manipuliert wird, die Ihren anrufen. Ein Beispiel für Sie könnte ein Bild-Tag auf einer anderen Website wie folgt sein: '' [Probieren Sie es aus] (https://jsfiddle.net/7af015qn/) –

Antwort

0

Laravel TokenmismatchExceptio werfen, weil Sie csrf in vor CLOUSE in Route erwähnen.

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

versuchen Sie, csrf daraus zu entfernen.

werden Sie dieses versuchen? Browser Cookies von Anfang an löschen. und testen Sie einfach Link und auch dies tun. chmod 777 ./storage/framework/sessions

+0

Alle anderen Links und href sind die gleichen und sie funktionieren. Warum ist das anders? – Stanly

+0

Wenn Sie auf diesen Link klicken, der beim System angemeldet ist oder nicht? –

+0

Es wird protokolliert. Es ist Admin-Benutzer. Der Administrator wird protokolliert und auf der Seite Unterkategorie und klickt auf den Namen einer Unterkategorie, um die Produkte in dieser Unterkategorie anzuzeigen. Beide Seiten benutzen 'csrf | admin' – Stanly

0

Die Route nicht in Web-Middleware einschließen, da alle in dieser Middleware genannten Routen csrf-Token erfordern. Ändern Sie die Route zu

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

So kann auch ein nicht angemeldeter Benutzer auf die Seite zugreifen. – Stanly

+0

Sie können separate Middleware hinzufügen, um eingeloggte Benutzer zu überprüfen. etwas wie RedirectIfNotAuthenticated –

Verwandte Themen