2016-11-12 55 views
1

我正在製作一個博客,並用<hr>標籤分隔每篇博文。但在底部它也循環,因爲這就是我的foreach循環的構建方式。如何在Laravel的foreach循環中刪除最後一個<hr>標記?

@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的每個底部輸出一條水平線。任何幫助?

回答

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

這工作。所以我無法用'$ post'替換'$ key'?只是爲了縮短。 '@if($ post + 1!= $ posts_count)' – Pinch

+0

這是最簡單的方法...... !! –

1

另一種可能性是使用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; 
} 
2

,如果我沒有missunderstood,這應該是修復

@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 
+0

它不應該出現在最後一個條目之後。只在第一個入口和第二個入口之下。以便最後一個不會有


標記。實際上,與你所建議的相反。 – Pinch

+0

我只是希望這個想法很明確!你可以使用$ loop變量來解決這個問題! –

相關問題