Joomla 2.5 - откат по модели метода save () - PullRequest
1 голос
/ 04 июня 2019

Это то, что я пытаюсь сделать:

Я сохраняю свой элемент в модели, затем вызываю метод, который может вызвать исключение, если что-то пойдет не так.

Если япоймать исключение, я хочу откат, это мое переопределение метода сохранения:

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?

...