Вы можете добавить мутаторы в вашу модель продукта, она станет виртуальным атрибутом, что-то вроде этого:
public function getPriceAttribute($value)
{
return $value - $this->discount * $value; // Here just the example, add your logic to calculate the price.
}
Таким образом, вы можете получить доступ к цене после скидки для каждого продукта.
Product::first()->price
Если вы не хотите, чтобы цена со скидкой перезаписывала вашу первоначальную цену, вы можете изменить имя другого атрибута, например discounted_price
:
protected $appends = ['discounted_price'];
public function getDiscountedPriceAttribute()
{
return $this->price - $this->discount * $this->price; // Here just the example, add your logic to calculate the price.
}
Доступ к цене со скидкой:
Product::first()->discounted_price