我有两个 Eloquent 模型(例如:书籍和作者),它们具有一对多关系(一个作者可以拥有多本书,每本书只有一个作者)。该数据库还包含根本没有书籍的作者。我想检索拥有一本书的所有作者的列表 - 没有重复的作者。
目前,我循环所有 Book 实例,并将作者添加到列表中(如果它尚未出现在列表中):
$books = Books::all();
$list = [];
foreach ($books as $book) {
if (! in_array($book->author, $list) ) {
array_push($list, $book->author);
}
}
我想知道是否有更聪明的方法来实现这一点,即减少数据库查询次数的方法。
$books = 书籍::with('author')->get();