在刀片 laravel 中多次防止 foreach 循环 html 标记

Posted

技术标签:

【中文标题】在刀片 laravel 中多次防止 foreach 循环 html 标记【英文标题】:Prevent foreach from loop html tag multiple time in blade laravel 【发布时间】:2021-12-26 08:47:04 【问题描述】:

我正在尝试使用 foreach 循环数据,并且我想在循环第一个项目后跳过 html 标记。

我已经尝试了下面的代码,但是 html 标签<p> 仍然被循环多次。我想要的是 <p> 标签只循环一次

@foreach ($store_icon as $key => $icon)
   @if ($key < 1)
       <p class="available-at">Also available at:</p>
   @endif
   <a href=" $store->product_url " target="_blank" style="margin-right: 2px"></a>
@endforeach

结果示例:

我想要的是这样的:

Also Available at
- Product 1
- Product 2

但是使用上面的代码,结果是这样的:

Also Available at
- Product 1
Also Available at
- Product 2

谢谢

【问题讨论】:

【参考方案1】:

我不知道为什么它不工作,它必须工作并且工作相同的代码,你可以试试 --

@foreach ($store_icon as $key => $icon)
   @if ($key == 0)
       <p class="available-at">Also available at:</p>
   @endif
   <a href=" $store->product_url " target="_blank" style="margin-right: 2px"></a>
@endforeach

或者你可以这样使用

@if(!empty($store_icon))
<p class="available-at">Also available at:</p>
    @foreach ($store_icon as $key => $icon)
       <a href=" $store->product_url " target="_blank" style="margin-right: 2px"></a>
    @endforeach
@endif

【讨论】:

如果我转储 $icon 它看起来像这样:pastebin.com/qzkiTqcx 顺便说一句,这也行不通 我已经用其他替代方法更新了我的答案。您可以检查特定集合是否有数据 谢谢!它使用第二个答案工作【参考方案2】:

什么问题?只需将其从循环中取出即可。

<p class="available-at">Also available at:</p>
@foreach ($store_icon as $key => $icon)
   <a href=" $store->product_url " target="_blank" style="margin-right: 2px"></a>
@endforeach

【讨论】:

如果没有循环数据我想隐藏标签 使用@if (!$store_icon) &lt;p class="available-at"&gt;Also available at:&lt;/p&gt; @endif

以上是关于在刀片 laravel 中多次防止 foreach 循环 html 标记的主要内容,如果未能解决你的问题,请参考以下文章

如何在刀片模板的 foreach 循环中访问 laravel 集合?

如何在控制器传递变量(laravel)中使用刀片进行 foreach

laravel刀片中的foreach jQuery对象

Laravel 5.1 - 表单中的 Foreach 数据(刀片)

显示来自 @foreach 的 Laravel 刀片中的所有输入

我们如何在 laravel php 刀片模板中为 foreach 循环定义循环变量