рекурсия — Php рекурсивный метод

Я пытаюсь получить все мои продукты текущей и дочерней категорий рекурсивно, но, к сожалению, он всегда возвращает пустой массив. Вот мой метод.

class Category {

public static $products = [];

public static function products($id) {

array_merge(self::$products, DB::table('products')->where('category_id', $id)->get());
$categories = DB::table('categories')->where('parent_id', $id)->get();
foreach ($categories as $category) {
self::products($category->id);
}
return self::$products;
}

}

После выполнения этого метода Category :: products представляет собой пустой массив. Может ли кто-нибудь помочь мне найти правильный способ сделать это?

1

Решение

Вам нужно назначить результат array_merge, Он возвращает новый массив, он не изменяет массив аргументов.

self::$products = array_merge(self::$products, DB::table('products')->where('category_id', $id)->get());
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]