Получите отдельный список всех связанных экземпляров модели в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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