Laravel Получить данные из таблицы отношений и выбрать столбец? - PullRequest
0 голосов
/ 01 октября 2018

У меня есть 3 таблицы

Таблица пользователей

+----+-------+----------+
| id | email | password |
+----+-------+----------+
| 1  | 1     | John     |
+----+-------+----------+

Таблица user_details

+----+--------------------+------------+-----------+
| id | user_id [FK_users] | first_name | last_name |
+----+--------------------+------------+-----------+
| 1  | 1                  | John       | Kevin     |
+----+--------------------+------------+-----------+

Таблица сообщений

+----+--------------------+----------+
| id | user_id [FK_users] | title    |
+----+--------------------+----------+
| 1  | 1                  | 1st Post |
+----+--------------------+----------+

Теперь я уже создал все связи в моделях, и теперь я могу получить доступ к таблице user_details по приведенному ниже красноречивому запросу, он возвращает всю таблицу пользователей и таблицу user_details, но я хочу только выбратьfirst_name и last_name из таблицы user_details как мне это сделать?

$posts= Post::with('city:id,name_en', 'user.userDetail')->where('id', $id)->get();

1 Ответ

0 голосов
/ 01 октября 2018

при этом будут получены все атрибуты 'post', 'user' id, 'user_details' user_id, first_name, last_name

$posts= Post::with([
    'city:id,name_en',
    'user' => function ($query) {
        $query->select('id');
    },
    'user.userDetail' => function($query) {
        $query->select(['user_id', 'first_name', 'last_name']);
    }
])->where('id', $id)->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...