Spatie Laravel 权限急切加载
Spatie Laravel permissions eager loaded
第一次使用这个很棒的包,我正在尝试为用户加载权限。
这个returns关系中的角色:
auth()->user()->with('roles')->first();
但是这个 returns 是一个空的关系:
auth()->user()->with('permissions')->first();
如何预加载权限?我作为示例使用的用户是超级管理员,因此它应该包含所有权限的数组。
我错过了什么?谢谢
给这段代码试试
对于角色:-
use Spatie\Permission\Traits\HasRoles;
use HasRoles;
$roles = User::select('id')->with(['roles'=>function($s){
return $s->select('roles.name as r_name');
}])->first();
OR
$roles = auth()->user()->with(['roles'=>function($s){
return $s->select('roles.name as r_name');
}])->first();
权限:-
use Spatie\Permission\Models\Permission;
$user = Auth()->user();
$permissions = $user->getAllPermissions();
OR
$permissions = auth()->user()->getAllPermissions();
您可以使用 auth()->user()->with('roles.permissions')->first();
急于加载两者
第一次使用这个很棒的包,我正在尝试为用户加载权限。
这个returns关系中的角色:
auth()->user()->with('roles')->first();
但是这个 returns 是一个空的关系:
auth()->user()->with('permissions')->first();
如何预加载权限?我作为示例使用的用户是超级管理员,因此它应该包含所有权限的数组。
我错过了什么?谢谢
给这段代码试试
对于角色:-
use Spatie\Permission\Traits\HasRoles;
use HasRoles;
$roles = User::select('id')->with(['roles'=>function($s){
return $s->select('roles.name as r_name');
}])->first();
OR
$roles = auth()->user()->with(['roles'=>function($s){
return $s->select('roles.name as r_name');
}])->first();
权限:-
use Spatie\Permission\Models\Permission;
$user = Auth()->user();
$permissions = $user->getAllPermissions();
OR
$permissions = auth()->user()->getAllPermissions();
您可以使用 auth()->user()->with('roles.permissions')->first();
急于加载两者