使用事务代码报错:Call to a member function transaction() on a non-object [ 求助交流 ]
Booksear::findOne(['useflag' => $useflag]);
没有返回记录,事务报错,我应该怎么写?
$model=Booksear::findOne(['userid' => Yii::$app->user->id,'useflag' => $useflag]);//用户书籍
if(!$model){
$connection->transaction(function() {
//抽取一个书籍
$model=Booksear::findOne(['useflag' => $useflag]);
if($model){
//书籍存在,分配给用户
$model->userid=Yii::$app->user->id;
$model->save();
}else{
//书籍审核完毕,抽取待定书籍
$useflag=3;
$model=Booksear::findOne(['useflag' => $useflag]);//用户书籍
if($model){
$connection->transaction(function() {
//书籍存在,分配给用户
if($model->userid!=Yii::$app->user->id){
$model->userid=Yii::$app->user->id;
$model->save();
}
},Transaction::SERIALIZABLE);
}else{
//待定书籍审核完毕,返回列表页
return $this->redirect(['index']);
}
}
},Transaction::SERIALIZABLE);
}
return $this->redirect(['inview', 'id' => $model->id]);
共 1 条回复
deffyc
注册时间:2016-06-05
最后登录:2016-07-13
在线时长:3小时46分
最后登录:2016-07-13
在线时长:3小时46分
- 粉丝0
- 金钱80
- 威望0
- 积分110