php - Laravel 在嵌套中间件组中排除路由

标签 php laravel middleware

我(大致)有以下情况:

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/

相关文章:

php - 如何构建电子商务应用程序的数据库?

php - Laravel CSRF保护下的JQuery AJAX跨站请求

javascript - 需要 Node JS 中间件功能

javascript - PHP 和 Ajax : manage list update

PhP mysql插入语法错误

php - Laravel/Eloquent - 无法执行原始查询

ios - IOS/Linux 应用程序中的通信架构选择?

node.js - 核心 Node.js 中的express.js "app.use()"相当于什么?

php - 谷歌云 - 重启后服务器超时

php - UPDATE sql 查询并在一个查询中获取更新的字段