Phalcon 事务回滚 - 无法获取理性错误信息

Phalcon transaction rollback - unable to get rational error message

我在 Phalcon 中执行事务回滚时遇到了获取正确错误消息的问题。一小段代码:

if(!$mailingList->save()){
        $this->transaction->rollback("Can't save mailingList model");
        return (new IR(false))->setErrors(\Helpers\Response::getErrors($mailingList));
}

我的自定义 class "InternalResponse" 别名为 "IR",它为我提供了调试过程中的所有必要信息,但是当我执行回滚时,它阻止返回我的消息到一个更高的水平。为此,我看不出保存模型有什么问题。我试图将我的 IR class 作为回滚参数和包含错误的数组传递,但这两种方法都不起作用,因为 rollback() 只接受字符串作为参数。

如果有人能给我一些线索,我将不胜感激。

事务回滚抛出异常,因此它会绕过 return 语句,因为它将传播到最近的 catch 块,或 PHP 运行时异常捕获器。

如果您想重新抛出消息或以其他方式处理它,请执行以下操作:

try {
    if (!$mailingList->save()) {
        $this->transaction->rollback("Can't save mailingList model");
    }
} catch (\Exception $e) {
    // $e->getMessage() === "Can't save mailingList model"
    return (new IR(false))->setErrors($e->getMessage());
}