Преобразовать (пользователь, роль, роль пользователя) SQL необработанный запрос в красноречивый Laravel - PullRequest
0 голосов
/ 24 марта 2020

Уважаемый сэр, мне нужно получить имя роли пользователя из сводной таблицы user_role.

Я успешно сделал это с помощью Sql Raw Query.но мне нужно использовать Eloquent. Пожалуйста, конвертируйте ниже sql код в Eloquent, пожалуйста, помогите мне, сэр, я новичок в laravel.


$role = DB::table('users')
    ->join('user_roles', 'users.id', '=', 'user_roles.user_id')
    ->join('roles', 'roles.id', '=', 'user_roles.role_id')
    ->select('roles.name')->where('users.id', '=',$user->id)
    ->get();

1 Ответ

1 голос
/ 24 марта 2020

вы можете попробовать Laravel Eloquent manyToMany отношения. Это точно такая же настройка, как у вас здесь с сводной таблицей.

Добавьте этот метод к вашей User модели

function roles {
    return $this->belongsToMany('App\Role', 'user_roles', 'user_id', 'role_id');
}

В вашем контроллере вы можете использовать

$roles = User::with('roles:name')->where('id', $user->id)->get();

Попробуйте этот метод, вам не нужно ничего менять, просто настройте модель и контроллер.

Для получения дополнительной информации вот документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...