将策略应用于资源控制器

Apply Policy to Resource Controller

我有一个 CRUD 通过 Route::resource('User', 'UserController') 定义的资源。

既然可以生成CRUD个Gates和Policies,有没有办法应用这样一个Gate/Policy,让对应的gate/policy应用到特定的路由上?

我认为这是一种优雅的方式,因为我的政策会与我的路线相匹配。我正在寻找一种方法,例如 applyPolicy 或类似的方法:

Route::resource('User', 'UserController')->applyPolicy()

否则我就得把每个策略都加到每个动作上,这样就显得不太优雅了。

看看authorizeResource(Model::class)方法。

控制器的构造函数中有一个示例:

public function __construct()
{
    $this->authorizeResource(Task::class);
}