嵌套 foreach 循环重复行 (Laravel 9)
P粉268654873
P粉268654873 2023-08-31 18:57:33
[PHP讨论组]
<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')-&gt;with('cats',$categories)-&gt;with('arts',$articles); }</pre> <p>我的 Blade 视图设置如下:</p> <pre class="brush:php;toolbar:false;">&lt;ul&gt; @foreach($cats as $cat) &lt;li&gt;{{ $cat-&gt;name}} &lt;ul&gt; @foreach($arts as $art) @if($cat-&gt;id == $art-&gt;category_id) &lt;li&gt;{{ $art-&gt;title }}&lt;/li&gt; @else &lt;li&gt;No articles&lt;/li&gt; @endif @endforeach &lt;/ul&gt; &lt;/li&gt; @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>
P粉268654873
P粉268654873

全部回复(1)
P粉111641966

我会确保您的模型中的关系已建立。

在您的类别模型中:

public function articles()
{
    return $this->hasMany(Article::class);
}

然后,在您的 CategoryController 中:

public function categories(){
    $categories = Category::with('articles')->get();
    return view('category.categories')->with('cats',$categories);
}

我对刀片部分不太确定,但你应该能够做到:

<ul>
  @foreach($cats as $cat)
    <li>{{ $cat->name}}</li>
    @if(empty($cat->articles))
      <li>No articles</li> 
    @else
      <ul>
        @foreach($cat->articles as $art)
          <li>{{ $art->title }}</li>
        @endforeach
      </ul>
    @endif
  @endforeach
</ul>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号