Laravel:刀片 foreach 循环引导列

Posted

技术标签:

【中文标题】Laravel:刀片 foreach 循环引导列【英文标题】:Laravel: blade foreach looping bootstrap columns 【发布时间】:2017-05-29 18:33:45 【问题描述】:

我有一个 foreach 循环,其中包含带有引导列的 html

@foreach($address as $add)
    <div class="col-md-6">
        Some data
    </div>
@endforeach

但是,引导程序在创建列之前需要行 div,将其直接放入 foreach 循环将为每个 col-md-6 创建一个行 div。我想知道如何在行 div 中输入,跳过下一个循环,只输入结束 div 标记。然后重复这个过程。

循环 4 次的示例输出:

<div class="row">
    <div class="col-md-6">
        Some data
    </div>
    <div class="col-md-6">
        Some data
    </div>
</div>
<div class="row">
    <div class="col-md-6">
        Some data
    </div>
    <div class="col-md-6">
        Some data
    </div>
</div>

【问题讨论】:

【参考方案1】:

作为 Alexey Mezenin 的答案的替代方案,您可以改用 array_chunk。 http://php.net/manual/en/function.array-chunk.php

@foreach(array_chunk($address, 2) as $chunk)
    <div class="row">
        @foreach($chunk as $add)
            <div class="col-md-6">
                Some data
            </div>
        @endforeach
    </div>
@endforeach

我个人觉得上面的内容更具可读性。

或者,如果$address 是一个集合,您可以使用$address-&gt;chunk(2) 而不是array_chunk($address, 2)

如果您想更改列数,只需将2 更改为您想要的列数。

【讨论】:

这是一种优雅的方式。谢谢。 @SaadSuri 你是绝对正确的。不过,我已经在我的回答中得到了这个答案;) 对不起,我没有看到那部分。我已经对答案感到惊讶,所以忘了阅读剩下的部分:) @SaadSuri 没关系。我也没有马上意识到它:) 当我使用$add-&gt;name 时,它显示错误``尝试获取非对象属性``!!【参考方案2】:

你可以在刀片模板中使用 Laravel 块。

@foreach($products->chunk(3) as $items)
<div class="row">
   @foreach($items as $item)
   <div class="col-md-4 portfolio-item">
      <a href="#">
      <img class="img-responsive" src=" 'uploads/'.$item->product_image_url " >
      </a>
      <h3>
         <a href="/view-product-details/ $item->id "> $item->product_name </a>
      </h3>
      <p> str_limit($item->product_description, 121) </p>
   </div>
   @endforeach
</div>
@endforeach

复制自blogpost。

【讨论】:

【参考方案3】:

使用the $loop variable:

<div class="row">
    @foreach($address as $add)
        <div class="col-md-6">
            Some data
        </div>
        @if ($loop->iteration % 2 == 0)
            </div>
            <div class="row">
        @endif
    @endforeach
</div>

【讨论】:

我的整个网站都崩溃了,我收到 [Vue 警告]:模板应该只负责将状态映射到 UI。避免在模板中放置带有副作用的标签,例如 @ThomasCharlesworth 我没有放置任何标签,例如&lt;script&gt;。这是标准的 Blade 模板代码。请解释一下你想表达什么? 我在 foreach 之外遗漏了第一个 div,我不知道为什么,但这会导致网站与 vue 警告一起中断。感谢您的解决方案!

以上是关于Laravel:刀片 foreach 循环引导列的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 刀片视图中打破 foreach 循环?

Laravel 刀片数组 foreach 循环

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

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

Laravel 刀片表创建嵌套的 Foreach 循环

如何在 foreach 循环内的 laravel 刀片文件中运行不同的 SELECT 查询?