gpt4 book ai didi

php - 在 laravel 中为资源的每个方法分配单独的中间件

转载 作者:行者123 更新时间:2023-12-05 00:41:17 25 4
gpt4 key购买 nike

我正在使用 Zizaco/entrust laravel 包作为我项目的 ACL 管理器。

我知道要通过中间件限制对路由组的访问并为其分配角色(或权限),我应该这样做:

Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function() {
....
});

但我想为资源 Controller 的不同路由(方法)分配单独的权限。

我知道如何为整个资源做到这一点,但我无法为每个 Controller 方法实现它:

Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function() {
Route::resource('/post', ['middleware' => ['permission:manage-posts'], 'uses' => 'PostController']);

});

我想将此权限授予相关方法:

'post-create' => public function create ()  
'post-edit' => public function edit()

等等。

最佳答案

您可以在 Controller 的构造函数中分配中间件:

class Foo extends Conroller
{
public function __construct() {

$this->middleware('post-create', ['only' => ['create']]);

$this->middleware('post-edit', ['only' => ['edit']]);
}
}

关于php - 在 laravel 中为资源的每个方法分配单独的中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36444779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com