我是Eloquent和Laravel的新手。我尝试了多种语法,但我找不到一种方法使它工作。下面是我想转换的查询:
SELECT category, SUM(amount) AS `total_cat` FROM expenses GROUP BY category ORDER BY `total_cat` DESC
这是我的"费用"模型。表:
class Expense extends Model
{
use HasFactory;
protected $fillable = ['date', 'title', 'amount', 'category'];
}
这里的想法是获得每个类别的费用总和(不需要别名)。该查询在纯PHP中工作得很好。谢谢你的帮助:)
这可能是解决方案,我还没有测试,但它似乎符合雄辩函数中的理论
Expense::select([
'category',
DB::raw('SUM(category) AS category_sum')
])
->groupBy('category')
->orderBy('total_cat', 'desc')
->get()
下面是解决我最初问题的方法:
Expense::select([
'category',
DB::raw('SUM(amount) AS total_cat') ])
->groupBy('category')
->orderBy('total_cat', 'desc')
->get();