我正在使用拉威尔雄辩。 我正在使用模型使用此查询。我的代码是
$books = Book::select('title', 'author', Book::raw('count(*) as copies'))
->where('title', 'like', '%'.$name.'%')
->orWhere(function ($query) use ($name) {
$query->where('author', 'like', '%'.$name.'%')
->where('subject', 'like', '%'.$name.'%');
})
->groupBy('title','author')
->get();
我收到了错误 " strtolower()期望参数1为字符串,对象为" 我知道错误在 count() 中。代码 原始('计数( )作为副本')用于表格。 但我不知道如何在模型雄辩中使用 count(*)作为副本。我的型号名称是预订。 我还有一个疑问,我们可以在groupBy中使用多个字段,即 的 GROUPBY('标题''作者&#39)
答案 0 :(得分:2)
使用selectRaw()
$books = Book::select('title', 'author'))
->where('title', 'like', '%'.$name.'%')
->orWhere(function ($query) use ($name) {
$query->where('author', 'like', '%'.$name.'%')
->where('subject', 'like', '%'.$name.'%');
})
->selectRaw('count(*) as copies')
->groupBy('title','author')
->get();
答案 1 :(得分:1)
试试这个,SelectRaw
$books = Book::select('title', 'author')
->selectRaw('count(*) as copies')
->where('title', 'like', '%'.$name.'%')
->orWhere(function ($query) use ($name) {
$query->where('author', 'like', '%'.$name.'%')
->where('subject', 'like', '%'.$name.'%');
})
->groupBy('title','author')
->get();
你也有这个可能性
->select('title','author', DB::raw('count(*) as copies'))