0

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

<?php

namespace App;

use Auth;
use App\Scopes\RoleScope;
use Illuminate\Database\Eloquent\Model;

class MyModel extends Model
{
    protected static function boot()
    {
        parent::boot();

        if( Auth::check() && ! Auth::user()->isSuperAdmin() ){
            static::addGlobalScope(new RoleScope);
        }
    }
}

范围从未申请过!我在这里做错了什么?如何实现基于用户角色应用范围的目标?谢谢

4

1 回答 1

0

您无法boot在 Eloquent 模型的方法中访问当前经过身份验证的用户 - Auth 中间件此时尚未运行。

您应该做的是在apply您的RoleScope.

于 2017-12-09T02:22:32.187 回答