在一个事务中执行两种不同的ActiveRecords方法

时间:2013-02-18 09:59:52

标签: php activerecord yii transactionscope

有没有可能的方法为活动记录方法定义事务?我有两个名为Answer和QuizMark的activeRecords,它们有两个方法。我想说服务器将它们作为一个trasaction执行。这是我的代码:

public function actionChangeAnswersStatus($formId, $userId) {
        if (isset($formId) && isset($userId)) {
            Answer::changeIgnoreStatus($formId, $userId);
            QuizMark::changeIgnoreStatus($formId, $userId);
            echo 'quizes';
        }
    }

有没有可能的解决方案?

1 个答案:

答案 0 :(得分:1)

尝试:

$connection = $this->connectDb();
$transaction = $connection->beginTransaction();

// You commands

$transaction->commit();

// Note: if an error occurs, call rollBack...

$transaction->rollBack();