我的交易表有4列(其他与查询无关)
我正在尝试通过平均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 = [];
但是我仍然遇到错误:
amount
中选择avg(transactions
)作为聚集(user_id
= 51
和bus_id
= 1
)在文件C:\ Users \ Jermayne \ API \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connection中.php 664行答案 0 :(得分:0)
将whereColumn
更改为where
,您应该就在路上。
whereColumn
用于将各列进行比较。