销售通知无效,因为此行amountArray[$idproduct] += $amount;
正在向我返回抵消。我不知道如何解决它。
我的全部功能是:
function saveAllSaleDetails($idsale, $sale) {
$this->conexion->startTransaction();
$amountArray = [];
try {
foreach ($sale as $detail):
$idproduct = $detail['id'];
$amount = $detail['amount'];
$price = $detail['price'];
$subtotal = $detail['subtotal'];
$iduser = 1;
$this->saveSaleDetail($idsale, $idproduct, $amount, $price, $subtotal, $iduser);
$amountArray[$idproduct] += $amount;
$stock = $this->product->getProductStock($idproduct);
$stock = $stock[0][0] - $amountArray[$idproduct];
if ($stock <= 20) {
$product = $this->product->getProductById($idproduct);
$message = $product[0][1]." stock is bellow 20.";
notification::add($message, $idproduct, 'warning', 'product.php');
}
endforeach;
$this->conexion->commit();
$this->conexion->cerrar();
return true;
} catch (Exception $e) {
$this->conexion->rollback();
$this->conexion->cerrar();
var_dump($e->getMessage());
return false;
}
}
答案 0 :(得分:0)
问题在于这条线,
$amountArray[$idproduct] += $amount;
上述陈述可以扩展为
$amountArray[$idproduct] = $amountArray[$idproduct] + $amount;
最初在foreach
循环的第一次迭代期间,$amountArray[1]
和$amountArray[2]
未设置,因此您收到这些undefined offset
错误。
所以而不是
$amountArray[$idproduct] += $amount;
这样做:
$amountArray[$idproduct] = isset($amountArray[$idproduct]) ? $amountArray[$idproduct] + $amount : $amount;