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

Laravel8使用foreach输出分类名称如何去掉末尾多余的连字符分隔符

Laravel 8 Blade循环输出分类末尾多余连字符解决方法

有两种常用的高效解决方案,不需要修改现有控制器的查询逻辑:


方案1:使用Blade内置$loop变量判断

这是最灵活的方案,如果你后续需要给分隔符加自定义样式、空格等调整,优先选这个:
修改你的Blade循环代码如下:

@foreach($category_tags as $category_tag)
<a href="{{ $category_tag->link }}">{{ $category_tag->title }}</a>
@if(!$loop->last)
 - 
@endif
@endforeach

$loop是Blade循环自带的变量,$loop->last会自动识别当前是不是循环的最后一项,只有非最后一项时才输出连字符分隔符。


方案2:使用Laravel集合的join方法直接拼接

如果不需要额外处理循环内的逻辑,这个方案代码更简洁:
直接替换掉整段foreach代码即可:

{!! $category_tags->map(fn($category_tag) => "<a href='{$category_tag->link}'>{$category_tag->title}</a>")->join(' - ') !!}

注意:这里要用{!! !!}语法输出内容,避免HTML标签被Blade自动转义。
如果你使用的PHP版本低于7.4不支持箭头函数,改用下方写法:

{!! $category_tags->map(function($category_tag) {
    return "<a href='{$category_tag->link}'>{$category_tag->title}</a>";
})->join(' - ') !!}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 00:15:02