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

minus the quantity value in the database by $_POST in yii

我有一个名为 Apparatus 的 table,那里有一个名为 "quantity" 的专栏, 我有另一个 table 叫做 Transaction,你可以在其中 select 设备 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();

在进行算术运算之前,请检查索引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 作为索引。

这是我所做的:(控制器)

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