Spatie Laravel权限急切加载 [英] Spatie Laravel permissions eager loaded

查看:63
本文介绍了Spatie Laravel权限急切加载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

First time using this awesome package, and I am trying to eager load permissions for a user.

这将返回关系中的角色:

this returns the roles in a relation:

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

但是这将返回一个空的关系:

but this returns an empty relation:

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

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

How do I eager load permissions? The user I am using as an example is Super Admin, so it should contain an array of all permissions.

我想念什么?谢谢

推荐答案

给出这段代码

对于角色:-

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

这篇关于Spatie Laravel权限急切加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆