2017-02-21 12 views
0

yii 1Yii :: app() - > endでトランザクションを終了する

Yii :: app() - > end()の後にMysql Innodbトランザクションも終了しますか?エラーが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(); 
関連する問題