Laravel在控制器功能内添加中间件

lul*_*ezy 2 php laravel

如标题所示,我想在控制器功能内使用中间件。我有资源控制器,它们内部的功能将具有不同的访问权限,因此我不能在web.php文件中使用中间件,我必须在每个函数中单独使用或应用中间件以限制访问,我的谷歌搜索还没有到目前为止,已经成功地找到了解决方案。请任何帮助,并在此先感谢。

附言:我认为这里不需要代码。

Rad*_*dez 6

3 种方法可以在控制器中使用中间件

1) 保护所有功能

public function __construct()
{
    $this->middleware('auth');
}
Run Code Online (Sandbox Code Playgroud)

2) 仅保护部分功能

public function __construct()
{
    $this->middleware('auth')->only(['functionName1', 'functionName2']);
}
Run Code Online (Sandbox Code Playgroud)

3) 保护除某些功能外的所有功能

public function __construct()
{
    $this->middleware('auth')->except(['functionName1', 'functionName2']);
}
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到有关此主题的所有文档:控制器

我希望这会有所帮助,问候!


lin*_*ref 5

中间件也可以仅应用于一个函数,只需在控制器构造函数中添加方法名称

public function __construct()
{
    // Middleware only applied to these methods
    $this->middleware('loggedIn', ['only' => [
        'update' // Could add bunch of more methods too
    ]]);
}
Run Code Online (Sandbox Code Playgroud)

这是文档

  • 也许是因为斗篷很贵! (3认同)