问题已解决。
我正在尝试找一本人的书,但由于书中有不同的版本,因此书表中有多本书。当我列出一个人的所有书籍时,我不应该列出重复的内容。
这是我到目前为止所做的事情
人物模型
public function books() {
return $this->belongsToMany('\App\Models\Thing', 'bookxauthor', 'person_id', 'thing_id');
}
PersonController.php
$allbooks = Person::find($id)->books;
这很棒,它列出了作者的所有书籍,但我不需要重复。
以下查询有效。 type_id意味着它是一本书。
$findBooks = Person::with(array('books' => function($query)
{
$query->where('type_id',"=",3)->groupBy('original_name');
}))->find($id);
$allbooks = $findBooks->books;
答案 0 :(得分:2)
您可以将groupBy函数用于集合 例如
$allbooks = Person::find($id)->books->groupBy('name')->get();
答案 1 :(得分:0)
以下查询有效。
$findBooks = Person::with(array('books' => function($query)
{
$query->where('type_id',"=",3)->groupBy('original_name');
}))->find($id);
$allbooks = $findBooks->books;