laravel,如何为模型添加额外的属性?

时间:2017-07-13 05:45:13

标签: laravel laravel-5 laravel-eloquent

我有一个product表和一个sub_product表。

product表中,有许多全局字段,例如namecat_id。 在sub_product表格中有product_idcolorPrice

现在我想要只向product laravel模型(集合)添加一个字段,从price为每个product提供最小sub_product。我怎么能这样做?

2 个答案:

答案 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();