如何删除Laravel中foreach循环中的最后一个<hr />标记?

时间:2016-11-12 15:04:34

标签: php html laravel foreach

我正在创建一个博客,并且我使用<hr>标记分隔了每篇博文。但是在底部它也循环,因为这就是我的foreach循环的构建方式。

@foreach($posts as $post)
<div class="row">
<div class="col-md-6">
<h1>some title</h1>
<p>some text</p>
</div>
</div>

<hr>
@endforeach

这只会在每个div的每个底部输出一条水平线。有帮助吗?

3 个答案:

答案 0 :(得分:2)

如果我没有理解,那应该是修复

@foreach($posts as $post)
<div class="row">
<div class="col-md-6">
<h1>some title</h1>
<p>some text</p>
</div>
</div>
 @if ($loop->last)
       <hr>// This is the last iteration.
    @endif

@endforeach

答案 1 :(得分:1)

您可以使用这个简单的逻辑,您可以使用count()收集方法并将其与foreach中的键进行比较:

@php
  $posts_count = $posts->count();
@endphp

@foreach($posts as $key => $post)
    <div class="row">
    <div class="col-md-6">
    <h1>some title</h1>
    <p>some text</p>
    </div>
    </div>

    @if ($key + 1 != $posts_count)
        <hr>
    @endif
@endforeach

希望这有帮助!

答案 2 :(得分:1)

另一种可能性是使用带CSS的last-child。

hr:last-child {
display: none;
}

但是你应该在容器中指定它,否则你的整个页面上的每一小时都不会显示。

所以例如

<div id="post-container">
@foreach($posts as $post)
<div class="row">
<div class="col-md-6">
<h1>some title</h1>
<p>some text</p>
</div>
</div>

<hr>
@endforeach
</div>

CSS

#post-container hr:last-child {
display: none;
}