Spatie Laravel权限急切加载

时间:2019-08-13 13:38:32

标签: laravel-5.8 user-permissions spatie

第一次使用这个超棒的程序包,而我正试图渴望为用户提供加载权限。

这将返回关系中的角色:

auth()->user()->with('roles')->first();

但这会返回一个空的关系:

auth()->user()->with('permissions')->first();

我如何渴望加载权限?我以超级用户为例,该用户应包含所有权限的数组。

我想念什么?谢谢

1 个答案:

答案 0 :(得分:1)

给出这段代码,尝试

对于角色:-

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();