小编典典

laravel如何获取多个用户的角色?

php

如果我有 2 个具有 n:n 关系的表,用户和角色。如何在 laravel 中获取所有用户的所有角色。

例子:

John Jack
role1 role1
role2 role3

阅读 142

收藏
2022-07-25

共1个答案

小编典典

不要忘记使用 with() 来减少 N+1 问题。做简单的 foreach 并获取名称。

// Get all users with assigned role
$users = \App\User::query()->with('roles')->get();
foreach ($users as $user) {
    echo $user->name . '<br/>';
    foreach ($user->roles as $role) {
        echo $role->name . '<br/>';
    }
}

// Get all user of a specific role
$users = \App\User::query()->whereHas('roles', function ($query) {
    $query->where('name', 'isAdmin');
})->get();
foreach ($users as $user) {
    echo $user->name . '<br/>';
    foreach ($user->roles as $role) {
        echo $role->name . '<br/>';
    }
}
2022-07-25