Разрешения Spatie Laravel нетерпеливо загружены

Впервые использую этот замечательный пакет, и я пытаюсь получить разрешения на загрузку для пользователя.

это возвращает роли в отношении:

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

но это возвращает пустое отношение:

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

Как получить разрешения на загрузку? Пользователь, которого я использую в качестве примера, — суперадминистратор, поэтому он должен содержать массив всех разрешений.

Что я пропустил? Спасибо


person TheRealPapa    schedule 13.08.2019    source источник
comment
Попробуйте это, чтобы получить все роли пользователей авторизации User::select('id')->with(['roles'=>function($s){ return $s->select('roles.name as r_name'); }])->first();   -  person Vipertecpro    schedule 14.08.2019


Ответы (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();
person Vipertecpro    schedule 14.08.2019