使用 laravel 刀片限制连续 <td> 的数量
Posted
技术标签:
【中文标题】使用 laravel 刀片限制连续 <td> 的数量【英文标题】:Limit the number of <td> in a row using the laravel blade 【发布时间】:2022-01-17 12:35:24 【问题描述】:我的刀片文件中有以下代码 $titleObject 是一个集合。有没有办法限制每行项目的数量(例如:每行 3 个项目)。请让我知道是否有比编写复杂的 for 循环更好的方法来实现这一点。
<div class="container" align="left">
<!-- Navigation -->
<header> <a href="">
<table cellpadding="10" border="0">
<tbody>
@if($titleObject)
<tr>
@foreach($titleObject as $title)
<td>$title->title</td>
<td> </td>
@endforeach
</tr>
@endif
</tbody>
</table>
<h4 class="logo"> </h4>
</a></header>
</div>
【问题讨论】:
【参考方案1】:假设键从 0 开始并正常上升,您可以使用它通过模运算符确定每隔三个元素。这样的事情应该可以工作。
@if($titleObject)
@foreach($titleObject as $key => $title)
@if($key % 3 == 0)
<tr>
@endif
<td>$title->title</td>
<td> </td>
@if($key % 3 == 2)
</tr>
@endif
@endforeach
@endif
如果键不等于索引,您可以添加一个 php 变量或一个正常的 for 循环,它会向上计数并使用与上述相同的逻辑。
【讨论】:
【参考方案2】:这是一种方法:
<tbody>
@if($titleObject)
@foreach($titleObject as $title)
@if($loop->index % 3 == 0)
<tr>
@endif
<td>$title->title</td>
<td> </td>
@if($loop->index % 3 == 0)
</tr>
@endif
@endforeach
@endif
</tbody>
【讨论】:
【参考方案3】:您可以使用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>
让我知道结果。
【讨论】:
我不知道这个函数存在,有趣:D 是的,其实这是一个好方法。在过去的 4 年里,我一直在使用它。自从我学习了 Core PHP。以上是关于使用 laravel 刀片限制连续 <td> 的数量的主要内容,如果未能解决你的问题,请参考以下文章