public function runAction($id, $params = []) { if ($this->auto_transaction) { $trans = Yii::$app->db->beginTransaction(); try { $r = parent::runAction($id, $params); $trans->commit(); return $r; } catch (\Exception $e) { Yii::warning("rollback transaction with error: " . $e->getMessage()); $trans->rollBack(); throw $e; } } return parent::runAction($id, $params); }