Laravel Spatial通过即时加载获得所有权限

Laravel Spatial通过即时加载获得所有权限,laravel,laravel-5,permissions,spatie,laravel-permission,Laravel,Laravel 5,Permissions,Spatie,Laravel Permission,大家好! 我正在使用Laravel Spatial许可包。 我可以像这样获得用户分配的所有权限 $user->getAllPermissions() $users = User::with('getAllPermissions')->get(); 但是,我希望通过即时加载获得所有权限。 也许是这样 $user->getAllPermissions() $users = User::with('getAllPermissions')->get(); 但这不起作用 我

大家好! 我正在使用Laravel Spatial许可包。 我可以像这样获得用户分配的所有权限

$user->getAllPermissions()
$users = User::with('getAllPermissions')->get();
但是,我希望通过即时加载获得所有权限。 也许是这样

$user->getAllPermissions()
$users = User::with('getAllPermissions')->get();
但这不起作用

我试过了

$users = user::with('permissions')->get();
但查询计数与结果相同

$users = user::get();
那么,
$user->getAllPermissions()
是否已经急切地加载了查询


或者是否有任何急切加载的查询?

要获得用户列表的所有权限是一件非常棘手的事情

$users = user::with('permissions')->get();
这将为用户列表提供权限模型。这样,您将只获得分配给用户的权限。但用户具有角色,则不会添加角色权限

但是
$user->getAllPermissions()功能将为您提供与用户角色和权限相关的所有权限。但我们需要用户列表的所有权限

我创建了一个Mutators函数来获取用户列表的权限

public function getPermissionAttribute()
{
    return $this->getAllPermissions();
}
现在,您可以在模型中追加

protected $appends = [
    'permission'
]
现在,为了避免递归查询(也称为n+1查询问题,为了避免为每个用户执行一个查询),请这样编写用户查询

$users = user::with(['permissions', 'roles'])->get();
或者添加到您的用户模型中

protected $with =[
   'permissions',
    'roles'
]

我认为这将对您有所帮助。

要获得用户列表的所有权限是一件非常棘手的事情

$users = user::with('permissions')->get();
这将为用户列表提供权限模型。这样,您将只获得分配给用户的权限。但用户具有角色,则不会添加角色权限

但是
$user->getAllPermissions()功能将为您提供与用户角色和权限相关的所有权限。但我们需要用户列表的所有权限

我创建了一个Mutators函数来获取用户列表的权限

public function getPermissionAttribute()
{
    return $this->getAllPermissions();
}
现在,您可以在模型中追加

protected $appends = [
    'permission'
]
现在,为了避免递归查询(也称为n+1查询问题,为了避免为每个用户执行一个查询),请这样编写用户查询

$users = user::with(['permissions', 'roles'])->get();
或者添加到您的用户模型中

protected $with =[
   'permissions',
    'roles'
]
我想这对你有帮助