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

Sim*_*nBL 1 php laravel eloquent

当我想使用withCount检索记录而又想返回一个不同名称的字段时,我在laravel中遇到问题。如果删除getCount,查询将正确返回字段,但是当我添加withCount时,它将忽略语句中的AS子句。

Maker::where('type_id', $request->type_id)->get(['maker_name AS label', 'id AS value']);
Run Code Online (Sandbox Code Playgroud)

正确返回带有道具“标签”和“值”的对象数组

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

Run Code Online (Sandbox Code Playgroud)

该语句忽略AS子句,仅从数据库返回添加了listing_count字段的记录

我想要的是查询返回:

[
   {
     label : 'string',
     value : int,
     listing_count : int
    },
    ...


]

Run Code Online (Sandbox Code Playgroud)

Dha*_*ada 6

您应该尝试以下代码

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