我有一个名为Apparatus的表,有一个名为" quantity"的列, 我有另一个名为Transaction的表,您可以在其中选择设备ID并保留数量
我如何从设备中的数量中减去交易中的数量?我得到了未定义的索引:id错误... 这是我控制器中的代码:
if (isset($_POST['Transaction']))
{
$transaction->attributes = $_POST['Transaction'];
$transaction->save();
$apparatus = Apparatus::model()->findByPk($_POST['id']);
$apparatus->quantity = $apparatus->quantity - ($_POST['quantity']);
$apparatus->save();
答案 0 :(得分:0)
在进行arithematic操作之前,请检查索引id
是否存在。
我相信,您的$_POST
变量不会将id
作为索引。
所以,我建议做以下事情:
if(Yii::app()->request->getPost('id') && Yii::app()->request->getPost('quantity') && Yii::app()->request->getPost('Transaction')){
$id = (int) Yii::app()->request->getPost('id');
$quantity = (int) Yii::app()->request->getPost('quantity');
$apparatus = Apparatus::model()->findByPk($id);
if($apparatus){
$apparatus->quantity = $apparatus->quantity - $quantity;
if($apparatus->validate()){
$apparatus->save();
}else{
// Log
var_dump($apparatus->errors);
}
}
}
或者,您可以转储{var_dump($_POST)
} post变量,以查看$ _POST是否包含id作为索引。
答案 1 :(得分:0)
这就是我的所作所为:(控制器)
if (isset($_POST['Transaction']))
{
$transaction->attributes = $_POST['Transaction'];
$transaction->save();
$id=$transaction->apparatus_id=($transaction['apparatus_id']);
$quantity=$transaction->quantity=($transaction['quantity']);
$apparatus = Apparatus::model()->findByPk($id);
$apparatus->quantity = $apparatus->quantity - $quantity;
$apparatus->save();
}