使用 laravel blade 限制连续 <td> 的数量

Limit the number of <td> in a row using the laravel blade

我的 blade 文件中有以下代码 $titleObject 是 collection。有什么方法可以限制每行项目的数量(例如:每行 3 个项目)。如果有比编写复杂的 for 循环更好的方法来完成此任务,请告诉我。

<div class="container" align="left"> 
  <!-- Navigation -->
  <header> <a href="">
    <table cellpadding="10" width="200" border="0">
      <tbody>
      @if($titleObject)
        <tr>
        @foreach($titleObject as $title)
          <td>{{$title->title}}</td>
           <td>&nbsp;</td>
           @endforeach
        </tr>
        @endif
       
      </tbody>
    </table>
    <h4 class="logo">&nbsp;</h4>
  </a></header>
</div>

假设密钥从 0 开始并正常上升,您可以使用它通过模运算符确定每三个元素。像这样的东西应该有用。

@if($titleObject)
  @foreach($titleObject as $key => $title)
    @if($key % 3 == 0)
     <tr>
    @endif
    <td>{{$title->title}}</td>
    <td>&nbsp;</td>
    @if($key % 3 == 2)
     </tr>
    @endif
  @endforeach
@endif

如果键不等于索引,您可以添加一个 PHP 变量或一个正常的 for 循环,它将计数并使用与上述相同的逻辑。

这里有一个方法:

<tbody>
  @if($titleObject)
    @foreach($titleObject as $title)
      @if($loop->index % 3 == 0)
       <tr>
      @endif
    
      <td>{{$title->title}}</td>
      <td>&nbsp;</td>
    
      @if($loop->index % 3 == 0)
       </tr>
      @endif
    
    @endforeach
  @endif
</tbody>

您可以使用Laravel Collection Chunk

<table>
    <tbody>
        @forelse ($titleObject->chunk(3) as $chunkedTitleObjects)
            <tr>
                @foreach ($chunkedTitleObjects as $title)
                    <td>{{$title->title}}</td>
                @endforeach
            </tr>
        @empty
            <tr>There is no data in table</tr>
        @endforelse
    </tbody>
</table>

让我知道结果。