son中的上下文完全清晰,因为我们看不到类和视图的相关部分,所以我会尝试推断一些元素。
productOptionPriceId 必须是一个数组,其中包含所选复选框的所有 ids 并初始化为空:
public array $this->productOptionPriceId = [];
考虑到这一点,我们可以像这样更改代码:
public function _updated()
{
$basePrice = (float)$this->basePrice;
$selectedSizePrice = (float)$this->selectedSizePrice;
if ($this->productSizeId > 0) {
$model = ProductSize::select('price')->findOrFail($this->productSizeId);
$this->selectedSizePrice = number_format($model->price, 2);
}
$selectedOptionPrice = ProductOption::whereIn('id', $this->productOptionPriceId)->sum('price');
$this->totalPrice = $basePrice + $selectedSizePrice + $selectedOptionPrice;
}