Joomla 2.5-模型方法save()上的回滚

时间:2019-06-04 08:25:51

标签: php joomla2.5

这就是我想要做的:

我将项目保存在模型中,然后调用一个方法,如果出现问题,该方法可以引发异常。

如果我捕获到异常,我想回滚,这是我对save方法的覆盖:

public function save($data) {
    $db = JFactory::getDbo();
    $db->transactionStart();
    $retVal = parent::save($data);
    if ($retVal) {
        try {
            $this->_doSomething();
            $db->transactionCommit();
        } catch (Exception $exc) {
            $db->transactionRollback();
            JFactory::getApplication('administrator')
            ->enqueueMessage($exc->getMessage(), 'error');
            return false;// THIS MAKES ROLLBACK FAIL, TO MAKE IT WORK I HAVE TO COMMENT THIS.
        }
    }
    return $retVal;
}

仅当我的方法无论如何返回true时,它才起作用。

对我来说,在这种情况下该方法返回false应该更正确,因为保存未完成 ,并且如果返回true,Joomla将输出一个误导性消息,好像保存成功。 但是,如果确实进行回滚,它将失败。

如果方法save()返回false,会使回滚失败的原因是什么?

0 个答案:

没有答案