根据Laravel 5.5中的用户角色应用全局范围



对于某些模型,如果登录用户不是超级管理员,则需要应用全局范围。在Model的boot()方法中,我尝试了这样的事情:

<?php
namespace App;
use Auth;
use AppScopesRoleScope;
use IlluminateDatabaseEloquentModel;
class MyModel extends Model
{
    protected static function boot()
    {
        parent::boot();
        if( Auth::check() && ! Auth::user()->isSuperAdmin() ){
            static::addGlobalScope(new RoleScope);
        }
    }
}

SCOP从未应用!我在这里做错了什么?如何根据用户角色实现应用范围的目标?谢谢

您无法访问雄辩模型的boot方法中当前身份验证的用户 - 验证中间件目前尚未运行。

您应该做的是在RoleScopeapply方法中执行超级管理检查。

最新更新