【问题标题】:Prevent foreach from loop html tag multiple time in blade laravel在刀片 laravel 中多次防止 foreach 循环 html 标记
【发布时间】: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

谢谢

【问题讨论】:

    标签: php laravel laravel-blade


    【解决方案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
    猜你喜欢
    • 2018-04-04
    • 2017-11-13
    • 2016-06-29
    • 2017-05-29
    • 1970-01-01
    • 2019-02-27
    • 2023-03-28
    • 2021-10-23
    • 2021-02-11
    相关资源
    最近更新 更多