我有一个product
表和一个sub_product
表。
在product
表中,有许多全局字段,例如name
和cat_id
。
在sub_product
表格中有product_id
,color
和Price
现在我想要只向product
laravel模型(集合)添加一个字段,从price
为每个product
提供最小sub_product
。我怎么能这样做?
答案 0 :(得分:1)
在Product类中,定义关系:
public function subproducts()
{
return $this->hasMany(SubProduct::class);
}
定义一个存取方法:
public function getMinimumPriceAttribute()
{
return $this->subproducts()->min('price');
}
将值检索为字段:
$price = $product->minimum_price;
答案 1 :(得分:0)
我认为您应该使用sub_product模型在产品模型中定义关系,然后您可以根据此关系查询产品。这种关系将是一对一的。
public function hasSubPRoducts(){
return $this->hasMany('\App\SubProduct','product_id','id');
}
然后查询模型
\App\Products::where('products_id',$id)-
>with(['hasSubPRoducts',function($query){
$query->orderBy('price', 'DESC');
}
])->get()->first();