如何在控制器构造函数中添加两个中间件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在控制器构造函数中添加两个中间件相关的知识,希望对你有一定的参考价值。

在Controller构造函数中添加这两个中间件的正确方法是什么?

Route::get('admin', ['middleware' => ['auth', 'admin'], function()

我有以下显然是不正确的。

public function __construct()
{
    $this->middleware('auth','admin');
}
答案

您可以将其分为两个语句,如下所示

public function __construct()
{
      $this->middleware('auth');
      $this->middleware('admin');
}

或者,如果您想使用一个语句

public function __construct()
{
      $this->middleware(['auth', 'admin']);
}

但是,如果您为某些方法限制中间件,如下所示

 $this->middleware(['auth', 'admin'], ['except' => [
            'fooAction',
            'barAction',
        ]]);

在这种情况下,您为fooAction方法和barAction方法限制auth和admin

资源:

https://laravel.com/docs/master/controllers#controller-middleware

以上是关于如何在控制器构造函数中添加两个中间件的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Typescript 在转译代码中将 .default() 添加到类构造函数中?

如何设置 Laravel 中间件的执行顺序?

在 Visual Studio 中创建构造函数的代码片段或快捷方式

在 Laravel 5.1 上的控制器构造函数之前运行中间件?

如何将多个构造函数添加到结构?

如何使用带有两个构造函数的viewmodel的Unity框架显示子窗口?