Verschachtelte foreach-Schleife wiederholt Zeilen (Laravel 9)
P粉268654873
2023-08-31 18:57:33
<p>Ich arbeite derzeit an meinem ersten echten Projekt mit Laravel 9. Ich bin auf ein Problem gestoßen, das ich nicht lösen kann. Ich habe zwei Tabellen „Kategorie“ und „Artikel“, die mit den Feldern „id“ (Kategorietabelle) und „category_id“ (Artikeltabelle) verknüpft sind. </p>
<p>In meiner KategorieController: </p>
<pre class="brush:php;toolbar:false;">öffentliche Funktionskategorien(){
$categories = Category::all();
$articles = Article::all();
return view('category.categories')->with('cats',$categories)->with('arts',$articles);
}</pre>
<p>Meine Blade-Ansicht ist wie folgt eingerichtet:</p>
<pre class="brush:php;toolbar:false;"><ul>
@foreach($cats als $cat)
<li>{{ $cat->name}}
<ul>
@foreach($arts als $art)
@if($cat->id == $art->category_id)
<li>{{ $art->title }}</li>
@anders
<li>Keine Artikel</li>
@endif
@endforeach
</ul>
</li>
@endforeach</pre>
<p>Als ich eincheckte, bekam ich Folgendes</p>
<pre class="brush:php;toolbar:false;">Kategorie 1
Artikeltitel 1
Keine Artikel
Keine Artikel
Keine Artikel
Keine Artikel
Kategorie 2
Keine Artikel
Artikeltitel 2
Keine Artikel
Keine Artikel
Keine Artikel
Kategorie 3
Keine Artikel
Keine Artikel
Artikeltitel 3
Keine Artikel
Keine Artikel
Kategorie 4
Keine Artikel
Keine Artikel
Keine Artikel
Artikeltitel 4
Keine Artikel
Kategorie 5
Keine Artikel
Keine Artikel
Keine Artikel
Keine Artikel
Keine Artikel</pre>
<p>Wie behebe ich das Problem, sodass nur einmal „Keine Artikel unter Kategorie 5“ angezeigt wird</p>
我会确保您的模型中的关系已建立。
在您的类别模型中:
然后,在您的 CategoryController 中:
我对刀片部分不太确定,但你应该能够做到: