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());
}
我在 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());
}