问题描述
我分配了三个级别的类别来添加产品Primary
,Secondary
和Final
类别。添加产品时,用户可以将最终的类别ID保存在category_id字段中。现在,我要访问与Primary
类别相关的最终类别的产品。
假设我具有电子主要类别,在此之下,我具有移动设备,相机,台式机 strong>,在Secondary
类别中,我又拥有Final
类别,例如Mobile中的三星, Galaxy ,佳能,相机内的 DSLR 等。现在,我希望能够提取Primary
类别内的所有产品。
我有以下代码可供急切加载:
$electronic_accessories = "Electronic Device";
$electronic_accessories_product = Product::whereHas('productCategory',function($query)
use($electronic_accessories) {
$query->whereHas('secondaryCategory',function($query)
use($electronic_accessories) {
$query->whereHas('primaryCategory',function($query)
use($electronic_accessories){
$query->where('name',$electronic_accessories);
});
});
})
->with([
'productCategory' => function($query) use($electronic_accessories) {
$query->whereHas('secondaryCategory',function($query) use($electronic_accessories)
{
$query->whereHas('primaryCategory',function($query)
use($electronic_accessories){
$query->where('name',$electronic_accessories);
});
});
},'productCategory.secondaryCategory'=> function($query) use($electronic_accessories)
{
$query->whereHas('primaryCategory',$electronic_accessories);
});
},'productCategory.secondaryCategory.primaryCategory' =>
function($query) use($electronic_accessories) {
$query->where('name',$electronic_accessories);
}])->take(2)->get();
此代码运行良好,但是我不想每次都想从Primary
类别中获得产品时重复此代码。我想将此用作功能。我尝试在getPrimaryProduct()
模型中使用Product
创建函数,但是它说
在null上调用成员函数getPrimaryProduct()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)