dirver == 'mysql') return Yii::$app->db->beginTransaction(); $this->transaction = Yii::$app->db->getTransaction(); if($this->transaction){ $this->transaction = Yii::$app->db->beginTransaction(); } $this->level ++; return $this; // $level = Yii::$app->db->getTransaction()->getLevel(); } public function rollback(){ $this->level --; if($this->level === 0){ $this->transaction->rollback(); return; } } public function commit(){ $this->level --; if($this->level === 0){ $this->transaction->commit(); } } public function getLevel(){ $this->transaction->commit(); return $this->level; } }