当我试图使用withCount检索记录而又想以其他名称返回字段时,我在laravel中遇到问题。如果删除getCount,查询将正确返回字段,但是当我添加withCount时,它将忽略语句中的AS子句。
Maker::where('type_id', $request->type_id)->get(['maker_name AS label', 'id AS value']);
正确返回带有道具“ label”和“ value”的对象数组
Maker::where('type_id', $request->type_id)->has('maker')->has('listing')->withCount(['listing'])->get(['maker_name AS label', 'id AS value']);
该语句忽略AS子句,仅从数据库返回添加了listing_count字段的记录
我想要的是要返回的查询:
[
{
label : 'string',
value : int,
listing_count : int
},
...
]
答案 0 :(得分:6)
您应该尝试以下代码
Maker::select(['maker_name AS label', 'id AS value'])->where('type_id', $request->type_id)->has('maker')->has('listing')->withCount(['listing'])->get();