Таблица соединений Laravel с использованием eloquent - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь загрузить последние 5 комментариев с соответствующими сообщениями, выбирая только идентификатор и заголовок из сообщения.

В первом случае я решил получить все столбцы из сообщений:

Comment::with(['post'])->take(5)->orderBy('id', 'desc')->get();

Иработает нормально

Но когда я пытаюсь получить только два столбца ("id, title"), тогда ничего из сообщений не загружается.

Comment::with(['post:id,title'])->take($number)->orderBy('id', 'desc')->get();

Я сделал тест, и когда я удалил "orderBy ('id',' desc ') "тогда снова все было в порядке.

Comment::with(['post:id,title'])->take($number)->get();

Так что должна быть какая-то проблема с опцией "orderBy".

Есть ли способ исправить это?Это значит получать только выбранные столбцы из таблицы "posts" и результаты заказа из последнего?

Спасибо.

1 Ответ

0 голосов
/ 27 мая 2018

Поскольку ваши модели комментариев и сообщений содержат id, Laravel не знает, по какой из них вы хотите отсортировать.Итак, добавьте имя таблицы к вашему orderBy:

Comment::with(['post:id,title'])->take($number)->orderBy('comments.id', 'desc')->get();

Здесь comments - это имя вашей таблицы / сущности, возможно, это comment.

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