Laravel 排除嵌套中间件组中的路由
Laravel exclude route in nested Middleware group
我有(示意性地)以下情况:
MiddlewareGroup1{
MiddlewareGroup2{
Route::resource(...);
...
Route::post('some-ajax-request', 'SomeController@action');
}
OtherNestedMiddlewareGroups{
...
}
}
我有一个问题,我希望 MiddlewareGroup2 申请 ajax 路由,而不是 MiddlewareGroup1。如何让 MiddlewareGroup1 不适用,但保留 MiddlewareGroup2?
我想这里没有内置解决方案。您可以将此路由放在 MiddlewareGroup1
之外,或者您可以在 MiddlewareGroup1
中检查当前请求 url,例如:
....
if ($request->is('some-ajax-request')) {
return $next($request);
}
....
这将跳过定义的 URL(s) 的 MiddlewareGroup1
中间件。
如果您有许多相似的 ajax 路线,您可以对它们使用相似的 URL('ajax-add-stuff'、'ajax-do-some-stuff' 等)并像这样检查它们:
if ($request->is('ajax*')) { .... }
我有(示意性地)以下情况:
MiddlewareGroup1{
MiddlewareGroup2{
Route::resource(...);
...
Route::post('some-ajax-request', 'SomeController@action');
}
OtherNestedMiddlewareGroups{
...
}
}
我有一个问题,我希望 MiddlewareGroup2 申请 ajax 路由,而不是 MiddlewareGroup1。如何让 MiddlewareGroup1 不适用,但保留 MiddlewareGroup2?
我想这里没有内置解决方案。您可以将此路由放在 MiddlewareGroup1
之外,或者您可以在 MiddlewareGroup1
中检查当前请求 url,例如:
....
if ($request->is('some-ajax-request')) {
return $next($request);
}
....
这将跳过定义的 URL(s) 的 MiddlewareGroup1
中间件。
如果您有许多相似的 ajax 路线,您可以对它们使用相似的 URL('ajax-add-stuff'、'ajax-do-some-stuff' 等)并像这样检查它们:
if ($request->is('ajax*')) { .... }