Вывод дерева категорий. Что не так?

97
25 августа 2019, 20:40

Нужен такой вывод:

Главная категория
-Подкатегория
--Суб категория
-Подкатегория 2
--Суб категория  
Главная 2  
Главная 3  
Главная 4
-Просто категория
---А в ней ещё одна

Выводит только:

Главная категория
Главная 2  
Главная 3  
Главная 4
static function getTreeCategories()
    {
        $categories = R::findAll('categories'); # Получаем список всех категорий
        foreach ($categories as $category) {
            $main = R::findAll('categories', 'parent_id = 0'); # Получаем список корневых категорий
            foreach ($main as $m) {
                $parent = R::findAll('categories', 'parent_id = ?', array($m->id)); # Получаем список категорий с parent_id равному корневой категории
                foreach ($parent as $p) {
                    $sub_parent = R::findAll('categories', 'parent_id = ?', array($p->id)); # Получаем список категорий с parent_id равному подкатегории
                }
            }
        }

        return array(
            'main' => $main ?? NULL, 
            'parent' => $parent ?? NULL, 
            'sub_parent' => $sub_parent ?? NULL
        );
    }

Клиентская часть:

<select name="category" class="form-control form-control-lg">
                <option value="">Не выбрано</option>
                {% for main in categories.main %}
                    <option disabled="">{{ main.name }}</option>
                    {% for parent in categories.parent %}
                        <option disabled="">{{ main.name }}:{{ parent.name }}</option>
                        {% for sub_parent in categories.sub_parent %}
                            <option value="{{ main.slug }}:{{ parent.slug }}:{{ sub_parent.slug }}">{{ main.name }}:{{ parent.name }}:{{ sub_parent.name }}</option>
                        {% endfor %}
                    {% endfor %}
                {% endfor %}
              </select>
READ ALSO
Не подключается повторно к базе данных

Не подключается повторно к базе данных

В программе база данных MYSQL подключается несколько раз к нескольким страницамПроблема в том, что подключение успешно лишь для первой страницы,...

112
Разбор xlsx файла PHPExcel

Разбор xlsx файла PHPExcel

Всем здравствуйтеЕсть скрипт импорта данных в БД из Эксель таблицы

118
Проброс подключения к БД в функцию php [дубликат]

Проброс подключения к БД в функцию php [дубликат]

На данный вопрос уже ответили:

102