У меня есть две модели 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