Получите отдельный список всех связанных экземпляров модели в Eloquent. ⇐ Php

Кемеровские программисты php общаются здесь
Anonymous
Получите отдельный список всех связанных экземпляров модели в Eloquent.

Сообщение Anonymous »

У меня есть две модели Eloquent (скажем, «Книги» и «Авторы»), которые имеют отношение «один ко многим» (один автор может иметь много книг, каждая книга имеет ровно одного автора). В базе данных также есть Авторы, у которых вообще нет Книги. Я хотел бы получить список всех авторов, у которых есть книга, без дублирования авторов.

В настоящее время я перебираю все экземпляры книги и добавляю автора в список, если его еще нет в списке:

Код: Выделить всё

$books = Books::all();
$list = [];
foreach ($books as $book) {
if (! in_array($book->author, $list) ) {
array_push($list, $book->author);
}
}
Интересно, есть ли более разумный способ добиться этого, то есть способ, который уменьшает количество запросов к базе данных.

Подробнее здесь: https://stackoverflow.com/questions/419 ... n-eloquent

Вернуться в «Php»