我正在使用Laravel 7.0。
我的domain_prices
表有price
、duration
addPrice
列。
我创建了DomainPrice
模型。
特定持续时间的Domain price
是price + addPrice
。
但是在 5 年的持续时间内,我需要将所有prices
和所有addPrices
相加1, 2, 3, 4, 5 years
.
我设置自定义属性以获取totalPrice
如下所示:
public function getTotalPriceAttribute()
{
return $this->price+$this->addPrice;
}
我想制作另一个自定义属性来获取sumPrice
,如下所示:
public function getSumPriceAttribute()
{
$sumPrice = 0;
$prices = $this->where('Duration', '<=', $this->Duration)->get(); // I removed domain filter query here.
foreach($prices as $price)
{
$sumPrice += $price->totalPrice;
}
return $sumPrice;
}
但这并没有返回确切的结果。 请用花哨的方法教我。谢谢。
我认为您在求和$sumPrice时在这里使用了错误的变量。 您应该将循环中的$subPrice
更改为foreach
$sumPrice
public function getSumPriceAttribute()
{
$sumPrice = 0;
$prices = $this->where('Duration', '<=', $this->Duration)->get(); // I removed domain filter query here.
foreach($prices as $price)
{
$sumPrice += $price->totalPrice; // change $subPrice to $sumPrice
}
return $sumPrice;
}