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

如何在Laravel Blade中将数据库日期作为动态表格标题

解决方案

1. 调整控制器逻辑,对分页数据按日期分组

保持分页功能的同时,对查询结果按date字段分组:

use Carbon\Carbon; // 需要格式化日期时引入

public function yourMethodName()
{
    // 获取分页数据
    $history = Signal::where('status', 1)->paginate(getPaginate(7));
    
    // 按日期分组(若date为datetime类型,可先格式化统一日期格式)
    $groupedHistory = $history->groupBy(function($signal) {
        // 可根据需求调整日期格式,比如转为「YYYY年MM月DD日」
        return Carbon::parse($signal->date)->format('Y-m-d');
    });
    
    // 将分组数据和分页实例传递给视图
    return view('your-view-name', compact('groupedHistory', 'history'));
}

2. 视图层动态生成带日期标题的表格

在Blade视图中遍历分组数据,每个日期作为标题,下方展示对应的数据表格:

{{-- 保留分页导航 --}}
<div class="mt-4">
    {{ $history->links() }}
</div>

{{-- 遍历分组后的日期数据 --}}
@foreach($groupedHistory as $date => $signals)
    <h2 class="mt-6">{{ $date }}</h2>
    <table class="table border-collapse w-full mt-2">
        <thead>
            <tr class="bg-gray-100">
                <th class="border px-4 py-2">ID</th>
                <th class="border px-4 py-2">名称</th>
            </tr>
        </thead>
        <tbody>
            @foreach($signals as $signal)
                <tr>
                    <td class="border px-4 py-2">{{ $signal->id }}</td>
                    <td class="border px-4 py-2">{{ $signal->name }}</td>
                </tr>
            @endforeach
        </tbody>
    </table>
@endforeach

注意事项

  • 若date字段已经是YYYY-MM-DD格式,无需Carbon格式化,直接使用$history->groupBy('date')即可
  • 分页功能不受影响,每页数据依然按日期分组展示,分页导航正常工作
  • 可根据需求自定义日期标题格式和表格样式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:50:12