我正在尝试从数据库中获取所有具有categories
的{{1}}并将其推入另一个数组。
我有四个3 products
,其中两个有categories
。
这是我的代码:
products
我得到的数组只有一项而不是两项。
我要去哪里错了?
答案 0 :(得分:2)
尽管错误很明显(在注释中提到),但是您可以重写整个内容:
$categories = Category::withCount('products')->get(); // you load count to not make n+1 queries
$categoriesWithProducts = $categories->filter(function($category) {
return $category->products_count > 0
})->values();
return response()->json(categoriesWithProducts);
当然,您可以使其更简单:
return response()->json(Category::withCount('products')->get()
->filter(function($category) {
return $category->products_count > 0
})->values()
);
但是实际上最好的方法是使用Eloquent relationships,因此您可以使用:
return response()->json(Category::has('products')->get());