【发布时间】:2018-02-21 09:28:30
【问题描述】:
我正在使用 larvel 雄辩。 我正在使用模型使用此查询。我的代码是
$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()。编码 raw('count() as copies') 用于table。 但我不知道如何在模型 eloquent 中使用 count(*) 作为副本。我的模特名称是Book。 我还有一个疑问,我们可以在 groupBy 中使用多个字段,即 groupBy('title','author')
【问题讨论】:
-
检查是否有效 Book::select('title', 'author', \DB::raw("count(*) as copies") )
-
您可以将多个参数传递给 groupBy 方法以按多列分组...请阅读文档laravel.com/docs/5.6/eloquent#eloquent-model-conventions
-
你也可以使用
selectRaw()。
标签: php mysql laravel eloquent