首页 > 代码库 > yii框架开启事务
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
]);
}
yii框架开启事务
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。