嵌套 foreach 循环重复行 (Laravel 9)
P粉268654873
2023-08-31 18:57:33
<p>我目前正在使用 Laravel 9 进行我的第一个实际项目。我遇到了一个无法解决的问题。我有两个表“类别”和“文章”,它们与字段 id(类别表)和category_id(文章表)连接。</p>
<p>在我的 CategoryController 中:</p>
<pre class="brush:php;toolbar:false;">public function categories(){
$categories = Category::all();
$articles = Article::all();
return view('category.categories')->with('cats',$categories)->with('arts',$articles);
}</pre>
<p>我的 Blade 视图设置如下:</p>
<pre class="brush:php;toolbar:false;"><ul>
@foreach($cats as $cat)
<li>{{ $cat->name}}
<ul>
@foreach($arts as $art)
@if($cat->id == $art->category_id)
<li>{{ $art->title }}</li>
@else
<li>No articles</li>
@endif
@endforeach
</ul>
</li>
@endforeach</pre>
<p>当我签入时,我得到了这个</p>
<pre class="brush:php;toolbar:false;">Category 1
Article title 1
No articles
No articles
No articles
No articles
Category 2
No articles
Article title 2
No articles
No articles
No articles
Category 3
No articles
No articles
Article title 3
No articles
No articles
Category 4
No articles
No articles
No articles
Article title 4
No articles
Category 5
No articles
No articles
No articles
No articles
No articles</pre>
<p>我该如何解决这个问题,这样它只显示一次“类别 5 下没有文章”</p>
我会确保您的模型中的关系已建立。
在您的类别模型中:
然后,在您的 CategoryController 中:
我对刀片部分不太确定,但你应该能够做到: