识别 Laravel Blade 中 @foreach 的最后一次迭代

问题描述 投票:0回答:4
php html laravel foreach
4个回答
3
投票

你应该这样做。

@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> //Ignore the last Iteration.
  @endif

@endforeach

2
投票

另一种可能性是将 last-child 与 CSS 结合使用。

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;
}

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

希望这有帮助!


0
投票

就做吧!在循环结束之前 (foreach) !

@if(!$loop->last)
  <hr>
@endif
© www.soinside.com 2019 - 2024. All rights reserved.