Я пытаюсь получить все мои продукты текущей и дочерней категорий рекурсивно, но, к сожалению, он всегда возвращает пустой массив. Вот мой метод.
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 представляет собой пустой массив. Может ли кто-нибудь помочь мне найти правильный способ сделать это?
Вам нужно назначить результат array_merge
, Он возвращает новый массив, он не изменяет массив аргументов.
self::$products = array_merge(self::$products, DB::table('products')->where('category_id', $id)->get());
Других решений пока нет …