【发布时间】:2020-07-01 03:55:53
【问题描述】:
我创建了 3 个数据库模型。一个是父类别,另一个是子类别,第三个是属于这些类别的帖子。
层次结构如下:
Parent
--Subcategory
----Post1
----Post2
----etc
我在模型上创建了以下关系:
子类别模型:
public function getCategoryDetails()
{
return $this->hasOne('App\Models\Categories' , 'id' ,'catId');
}
public function getPosts()
{
return $this->hasMany('App\Models\Posts' , 'catId' ,'id');
}
帖子模型:
public function getSubcategoryDetails()
{
return $this->hasOne('App\Models\Subcategories' , 'id' ,'catId');
}
这是视图内的代码:
<div class="card mt-2">
<h5 class="card-header bg-dark text-white d-flex align-items-center">Tillgänliga Kurser från denna arrangör</h5>
<div class="card-body">
@foreach($posts as $post)
<div class="card-title">
{{ $post->getSubcategoryDetails->getCategoryDetails->name }}
</div>
<div class="card-title">
{{ $post->getSubcategoryDetails->name }}
</div>
<a href="/kategorier/{{ $post->getSubcategoryDetails->getCategoryDetails->slug }}/kurser/{{ $post->getSubcategoryDetails->slug }}/annons/{{ $post->slug }}">{{ $post->name }}</a>
<br>
@endforeach
</div>
<!-- //Project Description Section End -->
</div>
现在这段代码几乎完全符合我的要求:它显示每个帖子的类别,然后为每个帖子创建一个有效链接。
但是,上面的代码在每次迭代时都会重复类别,这是不希望的。我希望它只显示每个类别一次及其下方的结果。预期结果示例:
Parent Category 1
--Subcategory 1
----Post1
----Post2
Parent Category 2
--Subcategory 1
----Post1
--Subcategory 2
----Post1
但我的代码将始终在每次迭代的每个帖子上方显示类别和子类别,即使帖子属于相同的类别/子类别组合。它现在如何工作的示例:
Parent Category 1
--Subcategory 1
----Post1
Parent Category 1
--Subcategory 1
----Post2
Parent Category 2
--Subcategory 1
----Post1
Parent Category 2
--Subcategory 2
----Post1
【问题讨论】: