Доброго всем времени суток. Подскажет пожалуйстя, нужно вернуть дерево в виде массива. В базе три столбца: id, category, parent_category. нужно сделать это с помощью рекурсии что то вроде этого но что бы работало PHP: static function tree($parent_category = 0, $lvl = 0) { $categories = Category::where('parent_category', '=', $parent_category)->get(); $i = 0; $childs = array(); if(count($categories) > $i){ foreach($categories as $category){ $childs[] = $category; if($category->parent_category > 0){ $childs[]['child'] = $category; } self::tree($category->id); $i++; $lvl--; } } return $childs; } ни как не получается соорудить массив в виде дерева. Если кто знает как это сделать, то если можно напишите пожалуйста на моем примере.
Нельзя так делать У тебя будет куча запросов к бд и очень большая нагрузка. Сначала выбери все записи из базы, а потом строй дерево рекурсией. Результат желательно закешеировать в виде дерева что бы не строить его при каждом запросе По коду - Надо сделать 1 запрос - Результат self::tree($category->id); ты не куда не сохраняешь - Зачем тебе $i++; $lvl--;