Всем привет.
Пробую собрать обратное меню на ларе. Чет не получается!
ко мне приходят последние подкатегории, например (выделил жирным):
одежда->женская->
джинсы
одежда->женская->
брюки
одежда->мужская->повседневная->
джинсы
одежда->мужская->повседневная->
брюки
вообщем мне мужно получить коллекцию всех категорий!
Пробую так:
function catNet($categories, $array = null){
//$array = $categories;
if($array == null){
//dd(1);
$array = collect();
foreach ($categories as $category){
if($category->parent AND !$categories->firstWhere('id', $category->parent->id)){
$categories = $categories->add($category->parent);
$array = $array->add($category->parent);
}
}
return catNet($categories,$array);
}elseif(!$array->isEmpty()){
//dd(2);
foreach ($array as $category){
if($category->parent AND !$categories->firstWhere('id', $category->parent->id)){
$categories->add($category->parent);
$array->add($category->parent);
}
}
return catNet($categories,$array);
}else{
//dd(3);
return $categories;
}
}
$res = catNet($categories);
dd($res);
Если есть возможность подскажите пжл как собрать но с фунциями замыкания (для себя):
пробую так тоже не выходит
$result2 = function ($item) use ($categories){
if($item->parent && !$categories->firstWhere('id', $item->parent->id)){
$categories->add($item->parent);
}
};
$categories->each(function ($item) use ($result2){
$result2($item);
});