减去yii中$ _POST的数据库中的数量值

时间:2015-02-03 13:47:13

标签: database post yii

我有一个名为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();

2 个答案:

答案 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();
    }