Категории Laravel и Infinity как дерево

Как отобразить все категории, с подкатегорией, суб, суб (..) категории, у меня есть простая таблица:

введите описание изображения здесь

и моя модель:

class Category extends Model
{
public $fillable = [
'parent_id',
'name',
'description'
];

public function parent()
{
return $this->belongsTo(Category::class, 'parent_id', 'id');
}

public function children()
{
return $this->hasMany(Category::class, 'parent_id', 'id');
}
}

Я хочу получить:

<ul>
<li>Category
<ul>
<li>Category 1.1</li>
<li>Category 1.2</li>
</ul>
</li>
(...)
</ul>

0

Решение

Этот практический подход работает для N количество категорий с N Число детей

Сначала создайте частичное представление category.blade.php файл, который будет рекурсивно вызывать себя, чтобы загрузить своих детей

<li>
@if ($category->children()->count() > 0 )
<ul>
@foreach($category->children as $category)

@include('category', $category) //the magic is in here

@endforeach
</ul>

@endif
</li>

Затем в главном окне вы добавляете этот код, который рекурсивно загружает всех детей

  <ul>
@foreach ($categories as $category)

@if($category->parent_id == 0 )

@include('category', $category)

@endif
@endforeach

</ul>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]