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