Możesz to zwyczajnie obliczyć:
$buy->total_price = ($request->amount * $request->price) + $request->shipp;
Ew. jeśli twój obiekt buy zawiera wszystkie potrzebne pola, to możesz albo obliczać tę cenę w locie przy odczycie:
class Buy extends Model
{
//...
public function getTotalPriceAttribute()
{
return ($this->amount * $this->price) + $this->shipp;
}
}
Jeśli jednak jakieś obliczenia będą zbyt wolne żeby przeliczać je za każdym razem przy odczycie, to można je wrzucić do bazy i wtedy będą przeliczane tylko na modyfikacji. Podaję przykład, ale prawdopodobnie tutaj jest to tak proste obliczenie, że będzie to zbyt skomplikowane rozwiązanie:
class Buy extends Model
{
//...
private function recalculateTotal(): void
{
$this->total_price = ($this->amount * $this->price) + $this->shipp;
}
public function setAmountAttribute($value)
{
$this->attributes['amount'] = $value;
$this->recalculateTotal();
}
public function setPriceAttribute($value)
{
$this->attributes['price'] = $value;
$this->recalculateTotal();
}
public function setShippAttribute($value)
{
$this->attributes['shipp'] = $value;
$this->recalculateTotal();
}
}