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

Laravel项目Bootstrap表格数据渲染格式不符问题求助

解决Laravel表格跨行合并对齐问题

问题说明

  • 预期效果:表格各列内容集中在单个单元格,通过跨行合并与其他列对齐,结构紧凑(如Skills列的2个条目占据2行高度,与Abilities列的6条目标齐)。
  • 实际效果:每个数组元素单独生成一行,仅对应列有内容,其余列为空,表格排版分散。

问题代码

<table class="table table-striped table-bordered">
<thead>
    <tr>
      <th scope="col">Skills</th>
      <th scope="col">Abilities</th>
      <th scope="col">Work Value</th>
      <th scope="col">Work Context</th>
    </tr>
</thead>
<?php
    $sub_skill = ["Skill 1","skill 2"];
    $sub_abilities = ["Ability 1","Ability 2","Ability 3","Ability 4","Ability 5","Ability 6"];
    $sub_workactivity = ["workactivity 1","workactivity 2"];
    $sub_workcontext = ["workcontext 1","workcontext 2", "workcontext 3"];
?>
<tbody>
    @foreach($sub_skill as $skill_key=>$skill_value)
           <tr>
               <td>{{ $skill_value }}</td>
               <td></td>
               <td></td>
               <td></td>
           </tr>
    @endforeach
       @foreach($sub_abilities as $abilities_key=>$abilities_value)
           <tr>
             <td></td>
             <td>{{ $abilities_value }}</td>
             <td></td>
             <td></td>
           </tr>
       @endforeach
       @foreach($sub_workactivity as $sub_workactivity_key=>$sub_workactivity_value)
           <tr>
             <td></td>
             <td></td>
             <td>{{ $sub_workactivity_value }}</td>
             <td></td>
           </tr>
       @endforeach
       @foreach($sub_workcontext as $workcontext_key=>$workcontext_value)
           <tr>
             <td></td>
             <td></td>
             <td></td>
             <td>{{ $workcontext_value }}</td>
           </tr>
       @endforeach
</tbody>
</table>

解决方案

通过计算各数组长度,使用HTML的rowspan属性合并对应行数的单元格,实现各列内容垂直对齐。修改后的Blade代码如下:

<?php
$sub_skill = ["Skill 1","skill 2"];
$sub_abilities = ["Ability 1","Ability 2","Ability 3","Ability 4","Ability 5","Ability 6"];
$sub_workactivity = ["workactivity 1","workactivity 2"];
$sub_workcontext = ["workcontext 1","workcontext 2", "workcontext 3"];

// 获取各数组元素数量
$skillCount = count($sub_skill);
$abilitiesCount = count($sub_abilities);
$workActivityCount = count($sub_workactivity);
$workContextCount = count($sub_workcontext);

// 以元素最多的数组长度作为表格总行数
$maxRows = max($skillCount, $abilitiesCount, $workActivityCount, $workContextCount);
?>

<table class="table table-striped table-bordered">
    <thead>
        <tr>
            <th scope="col">Skills</th>
            <th scope="col">Abilities</th>
            <th scope="col">Work Value</th>
            <th scope="col">Work Context</th>
        </tr>
    </thead>
    <tbody>
        @for($i = 0; $i < $maxRows; $i++)
        <tr>
            <!-- Skills列:仅第一行渲染单元格,合并对应行数 -->
            @if($i === 0)
            <td rowspan="{{ $skillCount }}">
                @foreach($sub_skill as $skill)
                    {{ $skill }}<br>
                @endforeach
            </td>
            @endif

            <!-- Abilities列:仅第一行渲染单元格,合并对应行数 -->
            @if($i === 0)
            <td rowspan="{{ $abilitiesCount }}">
                @foreach($sub_abilities as $ability)
                    {{ $ability }}<br>
                @endforeach
            </td>
            @endif

            <!-- Work Value列:仅第一行渲染单元格,合并对应行数 -->
            @if($i === 0)
            <td rowspan="{{ $workActivityCount }}">
                @foreach($sub_workactivity as $activity)
                    {{ $activity }}<br>
                @endforeach
            </td>
            @endif

            <!-- Work Context列:仅第一行渲染单元格,合并对应行数 -->
            @if($i === 0)
            <td rowspan="{{ $workContextCount }}">
                @foreach($sub_workcontext as $context)
                    {{ $context }}<br>
                @endforeach
            </td>
            @endif
        </tr>
        @endfor
    </tbody>
</table>

说明

  • rowspan属性指定单元格跨越的行数,确保内容多的列单元格高度匹配;
  • 仅在循环的第一行渲染对应列的单元格,避免重复生成;
  • 表格总行数由元素最多的数组决定,保证所有列内容都能对齐展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 15:39:57