【发布时间】:2018-05-07 20:51:45
【问题描述】:
对于某些模型,如果登录用户不是超级管理员,我需要应用全局范围。在模型的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);
}
}
}
范围从未应用!我在这里做错了什么?如何实现基于用户角色应用范围的目标?谢谢
【问题讨论】:
-
上述代码适用的范围是用户不是超级管理员。
标签: laravel-5.5 laravel-eloquent user-roles laravel-query-builder global-scope