2016-08-08 36 views
1

Wie kann man einen Artikel ausschließen, wenn man @foreach (blade) in Laravel benutzt?Wie kann ein Artikel ausgeschlossen werden, wenn @foreach in Laravel verwendet wird?

Beispiel:
ein Benutzer einige Artikel hat, in Artikel Detailseite:

<p>Article detail:</p> 
<h2>{{$article->title}}</h2> 
<p>{{$article->content}}</p> 

<h4>The other articles of this user:</h4> 
@foreach ($articles as $article) 
<p>{{$article->title}}</p> 
@endforeach 

Frage:
In @foreach, wie der Artikel auszuschließen, die oben gezeigt wurde?

+1

Handwerker verarbeiten Daten im Controller oder sogar im Modell, Ansicht dient nur zur Anzeige von Daten. – Kyslik

Antwort

0

Wenn Sie nicht wollen, die article auf Detailseite zeigen, in The other articles of this user:

Bei Controller Sie id of article auf dieser Detailseite senden sollte

Und Ansicht

<p>Article detail:</p> 
<h2>{{$article->title}}</h2> 
<p>{{$article->content}}</p> 

<h4>The other articles of this user:</h4> 
@foreach ($articles as $article) 
    @if($article->id !== $article_id) 
     <p>{{$article->title}}</p> 
    @endif 
@endforeach 

mit article_id zu sehen ist variable senden Sie von controller

4

Es gibt einige Möglichkeiten, dies zu tun. Eine Möglichkeit wäre ein einfacher, wenn Check in der Vorlage:

<p>Article detail:</p> 
<h2>{{$article->title}}</h2> 
<p>{{$article->content}}</p> 

<h4>The other articles of this user:</h4> 
@foreach ($articles as $otherArticle) 
    @if($article->id !== $otherArticle->id) 
     <p>{{$article->title}}</p> 
    @endif 
@endforeach 

Ein weiterer, vielleicht wäre besser Option, um den Hauptartikel aus den Daten in der Steuerung auszuschließen sein:

function showArticle(Article $article) 
{ 
    $otherArticles = $article->user->articles->filter(
     function($otherArticle) use($article) { 
      return $otherArticle->id !== $article->id; 
     }); 
    return view('someview') 
     ->with('article', $article) 
     ->with('otherArticles', $otherArticles); 
} 
0

eine Verwendung für Schleife ausgehend vom zweiten Element.

<p>Article detail:</p> 
<h2>{{$article->title}}</h2> 
<p>{{$article->content}}</p> 

@if (count($articles) > 1) 
<h4>The other articles of this user:</h4> 
@for ($i = 1; $i < count($articles); $i++) 
<p>{{$articles[$i]->title}}</p> 
@endfor 
@endif