You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Blade中如何合并两个数据表的小计进行求和?

合并两个数据表的总计计算方案

你可以通过两种方式实现Emphaya和Treasury两个表总计的合并计算,推荐优先使用后端计算的方式,减少重复数据库查询:

方案一:在控制器中预先计算总和(推荐)

修改控制器代码,直接计算两个表的单独总计以及合并后的总合计,再传递到视图,避免视图中重复触发数据库查询:

// 修改后的 Controller
public function index() {
    $emphayas = DB::select('select * from emphayas');
    $treasuries = DB::select('select * from treasuries');
    
    // 计算单表总计
    $emphayaTotal = \App\Models\Emphaya::sum('available_for_use_month');
    $treasuryTotal = \App\Models\Treasury::sum('available_for_use_month');
    // 计算合并总计
    $combinedTotal = $emphayaTotal + $treasuryTotal;

    return view('database', [
        'emphayas' => $emphayas,
        'treasuries' => $treasuries,
        'emphayaTotal' => $emphayaTotal,
        'treasuryTotal' => $treasuryTotal,
        'combinedTotal' => $combinedTotal
    ]);
}

在Blade视图中,直接使用传递过来的变量展示数据与总计,并新增合并总计模块:

<!-- 修改后的 Blade 视图 -->
<table class=" ">
    <tr>
        <th class="py-3 bg-cyan-400">Total</th>
        <td class="py-3 bg-cyan-400">available_for_use_month</td>
    </tr>

    @foreach ($emphayas as $emphaya)
    <tr>
        <td></td>
        <td>{{ $emphaya->available_for_use_month}}</td>
    </tr>
    @endforeach
    <tr>
        <td>Total</td>
        <td>{{ $emphayaTotal }}</td>
    </tr>
</table>

<table class=" ">
    <tr>
        <th class="py-3 bg-cyan-400">Total</th>
        <td class="py-3 bg-cyan-400">available_for_use_month</td>
    </tr>
    @foreach ($treasuries as $treasury)
    <tr>
        <td></td>
        <td>{{ $treasury->available_for_use_month}}</td>
    </tr>
    @endforeach
    <tr>
        <td>Total</td>
        <td>{{ $treasuryTotal }}</td>
    </tr>
</table>

<!-- 新增合并总计展示 -->
<div class="mt-4">
    <h3>合并总计</h3>
    <p>available_for_use_month 总合计:{{ $combinedTotal }}</p>
</div>

方案二:直接在Blade视图中计算合并总计

如果不想修改控制器,也可以直接在视图中合并两个表的总计,但这种方式会额外触发两次数据库查询,性能略差:

<!-- 在 Blade 视图末尾添加合并总计 -->
<div class="mt-4">
    <h3>合并总计</h3>
    <p>available_for_use_month 总合计:{{ \App\Models\Emphaya::sum('available_for_use_month') + \App\Models\Treasury::sum('available_for_use_month') }}</p>
</div>

内容的提问来源于stack exchange,提问作者optimus899

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 02:35:15