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

laravel, how can I add extra attribute to model?

我有一个producttable和一个sub_producttable。

product table 中有许多全局字段,例如 namecat_id 。 在sub_producttable中有product_idcolorPrice

现在我只想向 product laravel 模型(集合)添加一个文件,它为来自 sub_product 的每个 product 提供最小值 price。我该怎么做?

我认为你应该在产品模型中定义一个与 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();

在产品 class 中,定义关系:

public function subproducts()
{
    return $this->hasMany(SubProduct::class);
}

定义访问器方法:

public function getMinimumPriceAttribute()
{
    return $this->subproducts()->min('price');
}

检索值作为字段:

$price = $product->minimum_price;