我(大致)有以下情况:
MiddlewareGroup1{
MiddlewareGroup2{
Route::resource(...);
...
Route::post('some-ajax-request', 'SomeController@action');
}
OtherNestedMiddlewareGroups{
...
}
}
我有一个问题,我希望MiddlewareGroup2申请ajax路由,而不是MiddlewareGroup1。如何使 MiddlewareGroup1 不适用,但保留 MiddlewareGroup2?
最佳答案
我想这里没有内置的解决方案。您可以将此路由放在 MiddlewareGroup1
之外,也可以检查 MiddlewareGroup1
中的当前请求网址,例如:
....
if ($request->is('some-ajax-request')) {
return $next($request);
}
....
这将跳过已定义 URL 的 MiddlewareGroup1
中间件。
如果您有许多类似的 ajax 路由,您可以为它们使用类似的 URL('ajax-add-stuff'、'ajax-do-some-stuff' 等)并按如下方式检查它们:
if ($request->is('ajax*')) { .... }
关于php - Laravel 在嵌套中间件组中排除路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38853694/