【发布时间】:2017-10-03 13:09:39
【问题描述】:
我有以下模型和关系
class Advert extends Model
{
public function category() {
return $this->belongsTo('App\Category');
}
}
class Category extends Model
{
public function parent() {
return $this->belongsTo('App\Category', 'category_id','id');
}
public function children() {
return $this->hasMany('App\Category', 'category_id');
}
public function adverts() {
return $this->hasMany('App\Advert');
}
}
我有属于某个类别的广告的表格...广告的类别可以是另一个类别的子类别...子类别级别最大为 4。如何通过主根类别从所有子类别中检索所有广告它属于。
例如
<ul>
<li>Smartphones
<ul>
<li>Android
<ul>
<li>Samsung</li>
<li>Huawei</li>
<li>LG</li>
<li>Meizu</li>
<li>Acer</li>
</ul>
</li>
<li>Apple
<ul>
<li>iPhone 5</li>
<li>iPhone 6</li>
<li>iPhone X</li>
</ul>
</li>
</ul>
</li>
</ul>
我如何从所有子类别中获取所有广告,例如,如果我点击智能手机...我必须遍历每个级别还是有一个更简单的关系解决方案...
谢谢
【问题讨论】:
-
创建一个递归函数,将当前类别作为参数。在这个函数中,检查这个类别是否有任何孩子。回显孩子,并检查他们是否有孩子,如果有,请从函数的循环中调用您刚刚为这些孩子创建的函数
-
@JamesSheils 这有点帮助我,但它没有从最后一级类别中获取广告......
标签: php laravel fetch categories relation