您可以使用 authorizeResource() 并覆盖 resourceAbilityMap() 控制器中的方法。后一种方法返回从控制器方法到将被调用的策略方法的映射。
authorizeResource()
resourceAbilityMap()
https://github.com/laravel/framework/blob/5.7/src/Illuminate/Foundation/Auth/Access/AuthorizesRequests.php#L105
例如。
class MyController extends Controller { // ... /** * Get the map of resource methods to ability names. * * @return array */ protected function resourceAbilityMap() { return [ 'edit' => 'access', 'update' => 'access', 'destroy' => 'access', ]; } // ... }