Laravel内核加载动态中间件阵列

Laravel内核加载动态中间件阵列,laravel,Laravel,希望编辑我的Kernel.php文件,并在应用程序中禁用一些就地中间件(我希望我的头响应很快,) 我有一些想法,但我不知道下一步是什么: class Kernel extends HttpKernel { public function __construct(Application $app, Router $router) { $url = \Illuminate\Http\Request::capture()->url(); if($u

希望编辑我的Kernel.php文件,并在应用程序中禁用一些就地中间件(我希望我的头响应很快,)

我有一些想法,但我不知道下一步是什么:

class Kernel extends HttpKernel
{
    public function __construct(Application $app, Router $router)
    {
        $url = \Illuminate\Http\Request::capture()->url();
        if($url == 'http://autoservie.test/save'){

           //HERE i want set  protected $middlewareGroup and remove session 
           middleware from 'web'

        }else{

          // HERE set another protected $middlewareGroup

        }

        parent::__construct($app, $router);
    }

    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];

问题是,如何在构造函数中设置动态受保护的$middlewareGroups数组?或者还有其他解决方案吗?

您可以执行以下操作

    $index = array_search(\Illuminate\Session\Middleware\StartSession::class, $middlewareGroups['web']);
    unset($middlewareGroups['web'][$index]);

你可以这样做

    $index = array_search(\Illuminate\Session\Middleware\StartSession::class, $middlewareGroups['web']);
    unset($middlewareGroups['web'][$index]);

根据路由设置/取消设置不同的中间件组似乎是一种不好的做法。为什么不将中间件分配给您需要的路由,并将它们从全局中间件中移除呢?或者创建一个自定义的中间件组。根据路由设置/取消设置不同的中间件组看起来是一种不好的做法。为什么不将中间件分配给您需要的路由,并将它们从全局中间件中移除呢?或者创建自定义的middlewareGroup