2017-02-21 30 views
0

yii 1以Yii :: app()結束交易 - > end

Mysql Innodb事務是否也會在Yii :: app() - > end()之後結束? 這裏根據被返回給JavaScript錯誤模型驗證:

begin transaction 

    if (!$model->save()) { 
     echo CJSON::encode(array(
           "error"=>true, 
           "errorDetails" => $model->getErrors(), 
           "code"=>"500" 
        )); 
     Yii::app()->end(); 
    } 

    end transaction 

我們能找到交易活躍的的Yii ::應用程序()和結束現場交易在上述情況下,因爲它會離開,否則交易開放

Yii::app()->onEndRequest = function($event){ 
    //Find active transaction for current request and db and rollback 
}; 

回答

1

這解決了它的index.php

$app = Yii::createWebApplication($config); 


Yii::app()->onEndRequest = function($event){ 
    if(!is_null(Yii::app()->db->getCurrentTransaction())) {  
     Yii::app()->db->getCurrentTransaction()->rollback(); 
    } 
}; 

$app->run(); 
相關問題