Laravel雄辩的查询,使用withCount和get([name as value])

时间:2019-06-26 08:51:17

标签: php laravel eloquent

当我试图使用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
    },
    ...


]

1 个答案:

答案 0 :(得分:6)

您应该尝试以下代码

Maker::select(['maker_name AS label', 'id AS value'])->where('type_id', $request->type_id)->has('maker')->has('listing')->withCount(['listing'])->get();