laravel,如何为模型添加额外的属性?
laravel, how can I add extra attribute to model?
我有一个product
table和一个sub_product
table。
在 product
table 中有许多全局字段,例如 name
和 cat_id
。
在sub_product
table中有product_id
、color
和Price
现在我只想向 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;
我有一个product
table和一个sub_product
table。
在 product
table 中有许多全局字段,例如 name
和 cat_id
。
在sub_product
table中有product_id
、color
和Price
现在我只想向 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;