gpt4 book ai didi

php - 如何从 Laravel 获取数据库中列的平均值

转载 作者:行者123 更新时间:2023-11-29 17:17:32 25 4
gpt4 key购买 nike

我的交易表有4列(其他与查询无关)

  • trans_id:整数,pk
  • user_id:整数,fk
  • 金额:双倍
  • bus_id:整数

我试图通过对amount 列进行平均来获得他们花费的平均金额,但我的响应始终是“未找到列”。

  public function userDollarAverage(Request $request)
{
$business = $request->input('bus_id');
$user = $request->input('user_id');
$getAvgAmount = Transactions::whereColumn([
['user_id', '=', $user],
['bus_id', '=', $business]
])->avg('amount');
return response()->json(['average' => $getAvgAmount]);
}

我的迁移

  Schema::create('Transactions', function (Blueprint $table) {
$table->increments('transaction_id');
$table->unsignedInteger('user_id');
$table->foreign('user_id')->references('user_id')->on('users');
$table->integer('bus_id')->nullable();
$table->double('amount')->nullable();
});

我正在传递 json

{
"user_id": 51,
"bus_id": 1
}

它们也都列在我的模型中 protected $fillable = [];

但我仍然收到错误:

  • Illuminate\Database\QueryException: SQLSTATE[42S22]: 未找到列:1054 “where 子句”中的未知列“51”(SQL:从 选择 avg(amount) 作为聚合transactions 其中 (user_id = 51 and bus_id = 1)) 在文件 C:\Users 中\Jermayne\API\vendor\laravel\framework\src\Illuminate\Database\Connection.php 第 664 行
  • 我不明白为什么我会收到未知列“51”

最佳答案

whereColumn 更改为 where,您就可以上路了。

whereColumn 用于将列相互比较。

关于php - 如何从 Laravel 获取数据库中列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51473307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com