アクションが呼び出されたCDbConnection
ときにアクションを追加する方法はありますか?rollback
私はこのコードを持っていて、それは動作します:
$transaction = $model->dbConnection->beginTransaction();
try {
//...
//doing some manipulations
//...
if($model->save()) {
$transaction->commit();
$this->redirect(array('view','id'=>$model->id));
}
} catch(Exception $e) {
$transaction->rollback();
throw $e;
}
トランザクション ロールバック関数にイベントを追加するなど$transaction->rollback();
、ステートメントにこのコードを挿入せずに が呼び出されたときに行われた操作を元に戻す方法はありますか。catch
Behaviors と Eventsで回避策があるかもしれませんが、それがどのように機能するかはわかりません。
ありがとう!
編集- 私がやりたいことはこれです:
モデルの保存に失敗すると、データベースにロールバックが発生しますが、ファイルにもいくつかの操作を行っています (モデルを検証して保存する前に行う必要があります)。検証のために、これらの変更をファイルに戻す必要があります。