2016-07-28 9 views
0

Ich bleibe auf einer foreach-Schleife in meiner Blade-Vorlage nach Stunden des Versuchs und Versagens Ich brauche Hilfe.Laravel foreach Ausgaben

mein Controller

public function menue() { 

    $restaurants = User::with('articles')->get();; 

    return view('pages.menues')->withRestaurants($restaurants); 
} 

Mein foreach

@foreach($restaurants as $restaurant) 

     <div class="panel panel-default"> 
      <div class="panel-heading"> 
      @foreach($restaurant->articles as $article) 
       {{$article->title}} 
       <span class="float-right">{{$article->published_at}}</span> 
      @endforeach 
      </div> 

      <div class="panel-body"> 
      @foreach($restaurant->articles as $article) 
       {{$article->body}} 
      @endforeach 

      {{$restaurant->name}} 

      </div> 
     </div> 

     @endforeach 

Das ist, was ich Schleife Trog bin versucht:

{ 
     "id":1, 
     "name":"Sam", 
     "email":"[email protected]", 
     "created_at":"2016-07-26 15:03:51", 
     "updated_at":"2016-07-27 15:39:55", 
     "articles":[ 
      { 
      "id":1, 
      "user_id":1, 
      "title":"Monday Afternoon", 
      "body":"got it", 
      "created_at":"2016-07-27 15:31:05", 
      "published_at":"2016-07-27 15:30:00", 
      "excerpt":null, 
      "updated_at":"2016-07-27 15:31:05" 
      }, 
      { 
      "id":3, 
      "user_id":1, 
      "title":"Good Morning Wednesday", 
      "body":"lorem ipsum", 
      "created_at":"2016-07-27 11:38:37", 
      "published_at":"2016-07-27 11:38:00", 
      "excerpt":null, 
      "updated_at":"2016-07-27 11:38:37" 
      }, 
      { 
      "id":4, 
      "user_id":1, 
      "title":"Good Morning Thursday", 
      "body":"lorem ipsum ", 
      "created_at":"2016-07-27 11:39:14", 
      "published_at":"2016-07-28 14:38:00", 
      "excerpt":null, 
      "updated_at":"2016-07-27 11:39:14" 
      }, 
      { 
      "id":5, 
      "user_id":1, 
      "title":"Wednesday Afternoon", 
      "body":"Hallo Welt", 
      "created_at":"2016-07-27 14:55:00", 
      "published_at":"2016-07-27 14:54:00", 
      "excerpt":null, 
      "updated_at":"2016-07-27 14:55:00" 
      } 
     ] 
    } 

Ausgabe meiner Klinge templ ate

Das Ergebnis ist, statt vier Beiträge bekomme ich nur 2 Beiträge. Jeder von ihnen enthält zu anderen Posts. Wie kann ich alle 4 Beiträge in meiner Ansicht einzeln anzeigen?

+0

nicht zu Ihrem Problem zu tun haben, aber Sie sollten [eifrig Laden Beziehungen] (https://laravel.com/docs/5.1/eloquent-relationships#eager-loading) betrachten statt nur Restaurants passieren und dann '$ restaurant-> articles' iterieren - das spuckt deine DB mit unnötigen Anfragen, auch bekannt als "N + 1 Problem" PS: Was noch schlimmer ist, ist dass du es zweimal machst (du hast 2 getrennte foreach Schleifen) –

Antwort

1

Try This

@foreach($restaurants as $restaurant) 
    @foreach($restaurant->articles as $article) 
    <div class="panel panel-default"> 
     <div class="panel-heading"> 
     {{$article->title}} 
     <span class="float-right">{{$article->published_at}}</span> 
     </div> 
     <div class="panel-body">{{$article->body}}</div> 
    </div> 
    @endforeach 
@endforeach 
+0

Danke Mann. Es kann so einfach sein! –

Verwandte Themen