Я создаю электронную коммерцию с большим меню, в котором есть около 10 основных категорий, каждая из которых содержит множество подкатегорий нижнего уровня. Например, основная категория «Компоненты ПК» содержит две подкатегории «ЦП» и «Системные платы», затем подкатегория «ЦП» содержит Intel и AMD, затем Intel содержит i3, i5, i7. Я потратил несколько часов на исследования и обнаружил, что проблему можно решить с помощью реляционной базы данных с отношениями родитель-потомок и вложенными циклами foreach, как показано ниже
Код: Выделить всё
//Controller
... compact('maincategories')->toArray (//each compacted maincategory array should contain all children and grandchildren, etc.);
//View
@foreach($maincategories as $maincategory)
{{$maincategory['name']}}
@foreach($maincategory['subcategories'] as $subcategory
{{$subcategory['name']}}
@foreach($subcategory['subcategory_level_2s'] as $subcategory_level_2)
{{$subcategory_level_2['name']}}
@endforeach
@endforeach
@endforeach
Однако я не знаю, как настроить связь между ними. Я уже знаю отношения hasMany и ownTo, но как заставить их соотноситься друг с другом, меня сбивает с толку. Любое предложение приветствуется. Спасибо.
Потрачено часов. Невозможно настроить связи с таблицей sql.
Подробнее здесь:
https://stackoverflow.com/questions/765 ... in-laravel