Laravel雄辩独特的价值观

时间:2015-09-05 17:58:48

标签: eloquent laravel-5.1

问题已解决。

我正在尝试找一本人的书,但由于书中有不同的版本,因此书表中有多本书。当我列出一个人的所有书籍时,我不应该列出重复的内容。

这是我到目前为止所做的事情

人物模型

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;

2 个答案:

答案 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;