Чтобы получить всех пользователей с их ролями с помощью Laravel, вы можете использовать различные методы, предоставляемые инфраструктурой. Вот несколько подходов, которые вы можете использовать, а также примеры кода:
Метод 1: срочная загрузка
use App\Models\User;
$users = User::with('roles')->get();
foreach ($users as $user) {
echo $user->name;
foreach ($user->roles as $role) {
echo $role->name;
}
}
Метод 2: присоединение к построителю запросов
use Illuminate\Support\Facades\DB;
$users = DB::table('users')
->join('roles', 'users.role_id', '=', 'roles.id')
->select('users.name', 'roles.name as role_name')
->get();
foreach ($users as $user) {
echo $user->name;
echo $user->role_name;
}
Метод 3: запрос на взаимосвязь
use App\Models\User;
$users = User::has('roles')->with('roles')->get();
foreach ($users as $user) {
echo $user->name;
foreach ($user->roles as $role) {
echo $role->name;
}
}
Метод 4. Использование отложенной загрузки
use App\Models\User;
$users = User::all();
foreach ($users as $user) {
echo $user->name;
foreach ($user->roles()->get() as $role) {
echo $role->name;
}
}
Это всего лишь несколько примеров того, как можно получить пользователей и их роли в Laravel. Выберите метод, который лучше всего соответствует потребностям вашего приложения.