Я создаю таблицу для хранения родительской категории и ее дочерних элементов (подменю).
Я пытаюсь связать столбец «подменю» со столбцом «id» той же таблицы.
Я буду использовать это отношение для создания меню подменю, используя foreach.
My MySQl Table:
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');
}