php - 使用 withCount 和 get([name as value]) 的 Laravel Eloquent 查询

标签 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
    },
    ...


]

最佳答案

你应该试试下面的代码

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/

相关文章:

php - 在 wp_query 中,如何按复杂的计算字段或条件字段进行排序?

php - Laravel 5.5 FormRequest 自定义错误消息验证不起作用

sql - Laravel ajax 在追加中使用 if 条件

php - 查询范围如何在 Laravel 中工作?

php - Eloquent Query 用于获取用户没有完成交易的所有用户失败交易

json - 如何使用 eloquent 根据数据库关系返回 json 响应

javascript - Json 数组从 $_POST ['id' 增加我的 id 值]

php - 使用 SQLite 进行配置管理

php - 元音符号不会保存在 mysql 中

mysql - 如何使 updated_at 成为唯一的列更新而不是 created_at