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

时间:2018-10-10 16:29:31

标签: laravel

要编辑我的Kernel.php文件,并在应用中禁用一些中间件(我希望我的标头响应很快,here is my stack subject

我有个主意,但我不知道下一步是什么:

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数组?还是有其他解决方案?

1 个答案:

答案 0 :(得分:2)

您可以做类似

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