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?
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) –