我正在创建一个博客,并且我使用<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的每个底部输出一条水平线。有帮助吗?
答案 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;
}