我使用laravel-nestedset,我可以使用以下代码获取所有类别及其子代:
代码1:
$categories = $this->traverse(Category::defaultOrder()->get()->toTree(), null);
为了检查每个类别中的产品可用性,我使用以下代码:
码2:
if($category ->products()->exists()) {...}
我可以结合这两个代码吗?
我想要代码1,只返回包含产品的类别。
目前,我使用此代码:
代码3:
$temp = [];
$categories = $this->traverse(Category::defaultOrder()->get()->toTree(), null);
foreach($categories as $key=>$value){
$category = Category::find($key);
if($category ->products()->exists()){
$temp[$key] = $value;
}
}
$categories = $temp;
您需要在数据库查询中检查关系的存在:
Category::has('products')->defaultOrder()->get()