Здравствуйте, у меня есть модель
Category
, у одной категории могут быть подкатегории, поэтому в модели есть метод children.
Метод children в моделиpublic function children()
{
return $this->hasMany('App\Models\Admin\Category','parent_id');
}
И сейчас мне нужно построить дерево категорий но строю я не с помощью with и рекурсии, а просто получаю все категории одним запросом, и потом стою дерево.
Метод построения дереваprivate static function makeTree($items, $parentId)
{
$tree = collect();
if(is_array($items) && isset($items[$parentId])) {
foreach ($items[$parentId] as $item) {
$item->children = self::makeTree($items, $item->id); //$item - тут объект категории
$tree->push($item);
}
}
else {
return collect();
}
return $tree;
}
Вопрос в том что правильно ли делать так:
$item->children = self::makeTree($items, $item->id);
В Debugbar это выглядит вот так:
Подскажите пожалуйста правильно ли это, заранее благодарю за ответ.