Получение пользователей с ролями в Laravel: методы и примеры

Чтобы получить всех пользователей с их ролями с помощью 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. Выберите метод, который лучше всего соответствует потребностям вашего приложения.