Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 22.04.2017 17:56:58

Выборка данных из нескольких таблиц

Всем привет! Помогите пожалуйста, как лучше сделать следующее..
- Необходим список всех пользователей - users (id, name, email, position)
- Необходимы все сессии каждого пользователя - sessions (ip_address, user_agent, last_activity)
- Необходим список ролей пользователя - users_roles (user_id, role_id) + из таблицы roles (name, title)

Можно конечно вытащить данные по частям, я думаю, users_roles и roles стоит вытянуть отдельно.. хотя, может есть какой-то штатный метод?
Вообще встает вопрос как вытащить users + sessions где у пользователя может быть несколько сессий или не быть вообще
Пробую такой вариант, но работает не корректно

$arr = \DB::table('users')
            ->select('users.id', 'users.name', 'users.email', 'users.created_at', 'users.position',
                        'sessions.ip_address', 'sessions.user_agent', 'sessions.last_activity')
            ->join('sessions', 'users.id', '=', 'sessions.user_id')
            ->orderBy('name', 'asc')
            ->get();

Laravel 5.3

Не в сети

#2 23.04.2017 18:10:11

Re: Выборка данных из нескольких таблиц

а почему не элоквент?

Не в сети

#3 24.04.2017 19:33:00

Re: Выборка данных из нескольких таблиц

$users = User::with(’sessions’, ’roles’)->all();

На этом все. Главное не забыть объявить связи sessions & roles в модели User

Изменено DBR (24.04.2017 19:33:16)

Не в сети

Подвал раздела