21
Июл
2021

Как собрать полную коллекцию для меню? laravel

Всем привет!
Заранее всем благодарен!

Пробую собрать обратное меню на ларе. Чет не получается!
Ко мне приходят последние подкатегории (коллекция), например (выделил жирным):
одежда-женская-джинсы
одежда-женская-брюки
одежда-мужская-повседневная-джинсы
одежда-мужская-повседневная-брюки

Необходимо получить полную коллекцию всех дочерних категорий!
пробую так:

function catNet($categories, $array = null){
    if($array == null){
        $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()){
        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{
        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);
});

Источник: https://ru.stackoverflow.com/questions/1307284/%D0%9A%D0%B0%D0%BA-%D1%81%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D0%BF%D0%BE%D0%BB%D0%BD%D1%83%D1%8E-%D0%BA%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8E-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%B5%D0%BD%D1%8E-laravel

Тебе может это понравится...

Добавить комментарий