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

Blade模板中实现每10个<li>生成一个新<ul>包裹的解决方案

实现方案

你可以直接用Laravel 集合内置的chunk方法完成分组,这是最简洁且不易出错的实现方式:

方案1:基于集合chunk方法(推荐)

chunk方法可以直接将数据集按指定数量拆分为多个子集,你只需要外层循环子集生成<ul>,内层循环子集的元素生成<li>即可,代码如下:

{{-- 假设控制器传入的数据集为 $items --}}
@foreach($items->chunk(10) as $group)
    <ul>
        @foreach($group as $item)
            <li>{{ $item->你要展示的字段名 }}</li>
        @endforeach
    </ul>
@endforeach

如果后端传入的是数组而非Laravel集合,只需在Blade中先转集合即可:

@foreach(collect($items)->chunk(10) as $group)
    <!-- 内部ul、li生成逻辑和上面一致 -->
@endforeach

这个方案自动处理了最后一组不足10条的边界情况,不会生成空的<ul>标签。

方案2:基于循环计数实现

如果你不想用集合方法,也可以借助Blade循环自带的索引变量手动控制标签开闭:

@if($items->isNotEmpty())
    {{-- 先开启第一个ul --}}
    <ul>
    @foreach($items as $index => $item)
        <li>{{ $item->你要展示的字段名 }}</li>
        {{-- 每满10条、且不是最后一条数据时,关闭当前ul并开启新ul --}}
        @if(($index + 1) % 10 == 0 && !$loop->last)
            </ul>
            <ul>
        @endif
    @endforeach
    {{-- 关闭最后一个ul --}}
    </ul>
@endif

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 16:45:04