【问题标题】:How can I get in laravel Elequent Model?我怎样才能进入 laravel Eloquent Model?
【发布时间】:2026-02-14 08:05:01
【问题描述】:

假设我有一个名为 Payment 的模型,其中包含 field(column) student_id,fund_id,amount ,class_id 如果表中的数据是

student_id class_id    fund_id    amount
 1          1           1        100
 1          1           1        200
 1          1           2        150
 1          1           2        500
 2          1           2        100
 2          1           1        300
 2          1           2        300
 3          3           1        100
 4          2           2        100

我想得到类似的结果

class_id     student_id     fund_id    amount
1              1              1           300
1              1              2           750
1              2              1           300
1              2              2           400
2              4              2           100
3              3              1           100

排序将是 class_id 然后 student_id group by fund_id

在 laravel 中使用 elequent 模型的查询是什么?

【问题讨论】:

  • 你的数据库是什么样的?
  • 数据库表名payment和column分别是student_id、fund_id、class_id、amount@Jerodev
  • 要开始弄清楚这一点,您将如何编写 SQL 查询,将 Eloquent 排除在外?
  • 我不知道 group by fund_id @ChrisForrence 。你能帮帮我吗?

标签: php sql database laravel


【解决方案1】:

您可以在 eloquent 查询中使用多个 order by,而不是 group by 和 sum:

$result = Payment::orderBy('class_id')
    ->orderBy('student_id')
    ->groupBy('fund_id')
    ->sum('amount')
    ->get();

【讨论】:

  • 但我还需要通过订购@Apród Illés 来汇总 fund_id 金额
  • 它说“在字符串上调用成员函数 get()”@ApródIllés
  • @HelalUddin 删除 get()sum() 已经完成了。