zoukankan      html  css  js  c++  java
  • yii框架开启事务

    复制代码
     public function actionAdd()
        {
            $model = new Goods();
            $model->setScenario('insert');
        
            if ($model->load(Yii::$app->request->post())) {
                
                $model->image = UploadedFile::getInstance($model, 'image');
                
                if ($model->validate()) {
                
                    $model->cover = Yii::$app->security->generateRandomString(10) . '.' . $model->image->extension;
                    if (floatval($model->price_original) < 0.01) {
                        $model->price_original = null;
                    }
                
                    $transaction = Yii::$app->db->beginTransaction();
                    try {
                        if (!$model->save(false)) {
                            throw new Exception('商品添加失败!');
                        }
                        
                        $filename = Yii::getAlias(Yii::$app->params['goods.coverPath']) . DIRECTORY_SEPARATOR . $model->cover;
                        if (!$model->image->saveAs($filename)) {
                            throw new Exception('封面图片添加失败!');
                        }
                        
                        // 记录商品库存
                        $goodsSurplus = new GoodsSurplus();
                        $goodsSurplus->goods_id = $model->id;
                        $goodsSurplus->surplus_before = 0;
                        $goodsSurplus->amount = $model->surplus;
                        $goodsSurplus->surplus_after = $model->surplus;
                        $goodsSurplus->remark = '初始化库存。';
                        
                        if (!$goodsSurplus->save(false)) {
                            throw new Exception('商品库存记录失败!');
                        }
                        
                        $transaction->commit();
                        Yii::$app->session->setFlash('success', '成功添加商品“'.$model->name.'”。');
                        return $this->refresh();
                    } catch (Exception $e) {
                        $transaction->rollBack();
                        Yii::$app->session->setFlash('danger', $e->getMessage());
                    }
                }
            }
        
            return $this->render('form', [
                'model' => $model
            ]);
        }
    复制代码
  • 相关阅读:
    巴基斯坦:软件服务外包行业的后来者 (zz)
    对象集合查询
    我的db类库 新版
    得到web.config里配置项的数据库连接字符串
    jdk环境变量配置
    FastReport v3.2.5在BDS2006中的安装方法
    CONFIG.SYS文件的命令与配置
    DOS下内存的配置
    动态注册ODBC数据源的通用方法
    XP下安装装SQL2000企业版本
  • 原文地址:https://www.cnblogs.com/ghjbk/p/6745171.html
Copyright © 2011-2022 走看看