2016-04-10 22 views
1

Ich habe eine Middleware, die funktioniert gut, wenn als globale Middleware in Kernel.php definiert. Allerdings mag ich es nur auf bestimmte Strecken angewandt werden, so dass ich dies tun:Laravel Middleware erkannt, aber nicht ausgeführt

Route::group(['prefix' => 'myapi/', 'middleware' => 'api'], function(){ 

}); 

Aufruf php artisan route:list zeigt, dass die Middleware korrekt erkannt wird. Es wird jedoch nicht ausgeführt (ich weiß das, weil selbst das absichtliche Setzen eines Fehlers in die Datei nichts bewirkt).

... 
protected $middlewareGroups = [ 
    ... 
    'api' => [ 
     'throttle:60,1', 
     \App\Http\Middleware\CORSMiddleware::class, 
    ], 
]; 

Wenn die Middleware als global festgelegt wird, ist es nicht von route:list gelistet werden. Auch das falsche Angeben eines falschen Middleware-Namens in routes.php führt zu keinem Fehler.

EDIT: Protokollierung zeigt, dass die Middleware für alle GET-Ressource Routen ausgeführt wird, aber nicht für POST/PUT/DELETE.

Antwort

0

Ich glaube, Middleware innerhalb eines Arrays angeordnet werden muss, wenn es zu einer Gruppe hinzugefügt - das wird es dazu führen, auslösen und geben Sie das erwartete Ergebnis:

Route::group(['prefix' => 'myapi/', 'middleware' => ['api']], function(){ 

}); 
+0

Beide Syntaxen sind erlaubt, sonst Handwerker würde nicht Liste die Middleware in der 'route: list'. Aber selbst mit dieser Syntax funktioniert es nicht :( – user5365075

Verwandte Themen