在authserviceprovider中使用gate :: before进入如下所示的启动功能
Gate::before(function (Admin $user, $ability) {
if ($user->isSuperAdmin('Super-admin')){
return true;
}
});
然后在如下所示的管理模型中给出定义isSuperAdmin()方法
public function isSuperAdmin($ability){
foreach (\auth()->user()->roles as $role){
foreach ($role->permissions as $permission){
return $permission->name == $ability;}}}
但是superAdmin仍然受到限制
答案 0 :(得分:2)
Gate::before(function (Admin $user, $ability) {
return $user->hasRole('Super-admin') ? true : null;
});
我认为这就足够了。无需foreach,权限检查和其他功能。