【问题标题】:add new column to existing table and show it into a view blade (LARAVEL,mysql)向现有表添加新列并将其显示到视图刀片(LARAVEL,mysql)中
【发布时间】:2020-05-17 04:15:03
【问题描述】:

我的目标是在 home Blade 中显示我的项目中的 SUCCESS 付款总额。

如果不创建新列就可以做到这一点。

第 1 步: 我有一个名为 (payments) 的表,我想添加一个名为 (total_amount) 的新列,

我已经有了金额列,所以我需要将此列的总和放入新列(total_amount)。

注意: 我只需要成功付款,因此 SUM 查询需要一个条件,其中 status = 'success' enter image description here

第 2 步: 得到总金额后,我想将其显示到主页视图刀片中。

我只想显示

中的付款总额

请我需要一步一步来,我应该在控制器和模型中放入什么...,

我尝试在不创建新列的情况下获取总数,但没有成功,所以我认为我需要先创建他的列并获取该列的值,注意它只是一个值而不是数组。

【问题讨论】:

标签: mysql laravel model-view-controller eloquent


【解决方案1】:

如果我理解您的问题,并且您需要每次成功付款的总金额?如果问题是肯定的,这是您的查询(假设您已经创建了付款模型)。

Payment::selectRaw('SUM("amount")->where('status', 'success')->first();

【讨论】:

  • 您可以在控制器中,在返回视图之前添加您的值,例如:return View('my_view')->with(compact('payments', 'total_amount'));
【解决方案2】:

您不需要有一个总和列。通常,您应该避免存储聚合。改为这样做:

[控制器] $sum = Payment::where('status', 'success')->sum('amount');

然后当你构建视图时,确保与其他变量压缩总和:

[控制器] return view('yourtemplate', compact( 'all', 'your', 'other', 'vars', 'sum' ));

然后在视图本身中,在任何你想要的地方回显总和:

[查看]<h1>{{ $sum }}</h1>

编辑:想到了另一种方式。如果您已经在该视图中将付款作为收款,则可以使用收款助手:

[查看]<h1>{{ $payments->where('status', 'success')->sum('amount') }}</h1>

【讨论】:

  • 我应该在控制器和模型中放入什么?我不明白你,我应该在契约中放什么 vars ?我只需要总量吗?你的意思是列的其他名称?
  • 我添加了一些助手。您认为有收款吗?如果是这样,最后一行就足够了。
猜你喜欢
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
相关资源
最近更新 更多