#laravel #nested
#laravel #вложенные
Вопрос:
У меня есть таблица категорий (id, category_name, parent_id) со следующими данными.
id-category_name-parent_id
1-Электроника-NULL
2-Мобильные телефоны-
13-Умные часы-
14-Ноутбуки-
15-Аккумуляторы-4
В контроллере извлекаются все категории, для которых parent_id равно NULL
public function index()
{
$categories = Category::whereNull('parent_id')->get();
return view('catalogs.categories.v2.index',compact('categories'));
}
В index.blade.php Я попробовал кое-что, используя иерархию treeview
<tbody>
@foreach($categories as $category)
<tr>
<td></td>
<td>{{ $category->category_name }}</td>
<td></td>
</tr>
<tr>
<td></td>
<td>
{{ $category->category_name }}
@if(count($category->childs))
@include('catalogs.categories.v2.manageChild',['childs' => $category->childs])
@endif
</td>
<td>{{$category->childs_count() }}</td>
<th></th>
</tr>
@endforeach
</tbody>
@foreach($childs as $child)
>> {{ $child->category_name }}</span>
@if(count($child->childs))
@include('catalogs.categories.v2.manageChild',['childs' => $child->childs])
@endif
@endforeach
Теперь мой вывод в моей таблице в представлении выглядит следующим образом
Название категории
Электроника
Электроника >> Мобильные телефоны >> Умные часы >> Аккумулятор >> Ноутбуки
Я хочу создать что-то вроде
названия категории
Электроника
Электроника >> Мобильные телефоны
Электроника >> Умные часы
Электроника >> Ноутбуки >> Аккумулятор
Может кто-нибудь, как это исправить?
Ответ №1:
В вашем случае вы можете представить свои категории как узлы, а отношения между тем — как ребра
таким образом, для углубленного поиска сыновей каждой категории вам необходимо использовать алгоритмы поиска по графу, такие как DFS,
по этой ссылке вы могли бы лучше узнать о DFS: DFS В ЦЕЛОМ