Ларавел 4 - Красноречивый. Бесконечные дети в полезный массив?

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

То, что я хочу сделать, это построить простое дерево списка HTML с уровнями категорий.

Пример даты:

Foods
-- Fruit
---- Apple
---- Banana
---- Orange
-- Veg
---- Cucumber
---- Lettuce
Drinks
-- Alcoholic
---- Beer
---- Vodka
Misc
-- Household Objects
---- Kitchen
------ Electrical
-------- Cooking
---------- Stove
---------- Toaster
---------- Microwave

Обратите внимание, что это должно работать около 10 'уровни, Я'я бы хотел, чтобы оно было бесконечным, но я действительно не хочу идти по пути использования модели вложенного множества в качествеприведет к огромным задержкам в этом проекте.

Документы по этому вопросу для Laravel ужасны, без реальной ссылки на то, с чего начать. Я'Я играл с ним в течение нескольких дней, пытаясь понять, что делать, и, похоже, ничего не получилось без огромного беспорядочного блока для каждого цикла друг в друге 10 раз.

мы получили мое дерево данных, используя в моей модели следующее:

hasOne('Item', 'id', 'parent_id');
    }

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

    public function tree()
    {
        return static::with(implode('.', array_fill(0,10, 'children')))->where('parent_id', '=', '0')->get();
    }
}

Таким образом все родительские и дочерние элементы получают уровень 10. Это работает нормально, но вы не можете ничего сделать с дочерними данными, не имея вручную 10 циклов foreach друг с другом.

Что я здесь не так делаю? Конечно, это не должноНеужели это трудно / плохо выполнено? Все, что я хочу сделать, это получить простой список HTML с элементами в древовидной структуре.

Мы собрали быстрый пример SQLFiddle из фиктивных данных, использованных выше:http://sqlfiddle.com/#!2/e6d18/1

Ответы на вопрос(3)

Ваш ответ на вопрос