我已经能够扩展Backend\Models\User
类并添加一个范围查询方法来只检索超级用户:
public function boot()
{
User::extend(function($model) {
$model->addDynamicMethod('scopeIsSuperUser', function($query) {
return $query->where('is_superuser', 1);
});
});
}
如何为特定组中的用户设置范围方法?就像我只想要角色为“BookManager
”的用户。是否可以使用已在$groups
类中定义的Backend\Models\User
关系?
public $belongsToMany = [
'groups' => ['Backend\Models\UserGroup', 'table' => 'backend_users_groups']
];
这应该做到这一点
User::extend(function($model) {
$model->addDynamicMethod('scopeIsBookManager', function($query) {
return $query->whereHas('groups', function ($query) {
$query->where('code', 'BookManager');
});
});
});