当我尝试使用 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
},
...
]
最佳答案
你应该试试下面的代码
Maker::select(['maker_name AS label', 'id AS value'])->where('type_id', $request->type_id)->has('maker')->has('listing')->withCount(['listing'])->get();
关于php - 使用 withCount 和 get([name as value]) 的 Laravel Eloquent 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56768835/