【发布时间】:2020-02-21 10:47:36
【问题描述】:
我正在创建一个表来存储父类别及其子类别(子菜单)。
我正在尝试将“子菜单”列与同一张表的“id”列相关联。
我将使用这种关系来使用 foreach 构建一个子菜单菜单。
我的 MySQl 表:
ID | submenu | name
1 | null | Products
2 | 1 | Submenu Level 1 (A)
3 | 1 | Submenu Level 1 (B)
4 | null | Phones
5 | 4 | Samsung
6 | 4 | Apple
现在我选择所有父亲。
$categorias = Categorias::withCount('submenu')->where('ativo', 1)->whereNull('submenu')->get();
现在我不能继续了。
我想这样做。
<ul>
@foreach($categorias as $n1){
<li>
<a href="">{{ $n1->name }}</a> // Here work
@if( $n1->submenu_count > 0 )
<ul>
// I can't do this.
@foreach($n1->submenus() as $n2)
<li> <a href="">{{ $n2->nome }} </li>
@endforeach
</ul>
@endif
</li>
@endforeach
</ul>
这是我尝试在模型中做的一些方法。
public function parent() {
return $this->belongsTo('Categorias','submenu');
}
public function submenu(){
return $this->hasMany('App\Categorias','submenu');
}
public function submenu(){
return $this->hasMany('App\Categorias', 'id', 'submenu');
}
【问题讨论】:
标签: laravel eloquent relationship