所以我有表prices
的结构:
+----+--------+
| id | reward |
+----+--------+
| 1 | 721 |
+----+--------+
| 2 | 54 |
+----+--------+
| 3 | 99 |
+----+--------+
我正在使用这种方法来总结所有奖励:
'withdrawals' => \App\Tradeoffer::where('type', 'withdraw')
->where('completed', 1)
->where('declined', 0)
->where('timeout', 0)
->where('created_at', '>', (time() - $hours))
->sum('reward')
并且响应是:7215499而不是所有条目的总和。这是为什么?怎么处理呢?
答案 0 :(得分:1)
我认为你可以这样做,
$totalReward = \App\Tradeoffer::selectRaw('SUM(reward) as total')
->where('type', 'withdraw')
->where('completed', 1)
->where('declined', 0)
->where('timeout', 0)
->where('created_at', '>', (time() - $hours))
->first();
$totalReward->total;
答案 1 :(得分:0)
您应该做的是确保数据库中reward
表中的prices
列是数字(整数/浮点数)而不是varchar
答案 2 :(得分:0)
我使用查询生成器而不是使用模型,它可以(使用我的数据库)
DB::table('Tradeoffer') // Here is the name of the table
->where('type', 'withdraw')
->where('completed', 1)
->where('declined', 0)
->where('timeout', 0)
->where('created_at', '>', (time() - $hours))
->sum('reward');
试试吧!