如果我有 2 个具有 n:n 关系的表,用户和角色。如何在 laravel 中获取所有用户的所有角色。
例子:
不要忘记使用 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/>'; } }