cakePHP-条件保存,可以吗?

cakePHP-条件保存,可以吗?,cakephp,save,conditional,undo,Cakephp,Save,Conditional,Undo,情景: 控制器中保存数据的方法是对第一次Model->save()调用的结果进行一些复杂的计算。 然后将结果保存在相关模型中。有时它会失败 是否有一种内置的方法可以使用cake执行此操作,当第二次保存失败时,它将删除第一条记录?如果您在应用程序中执行这些计算时,必须先将其保存到数据库中,请使用: 这要求您使用支持事务处理的数据库和存储引擎,如。如果您在应用程序中完全无法在不首先保存到数据库的情况下进行这些计算,请使用: 这需要使用支持事务的数据库和存储引擎,就像。正是我要找的东西!tnxAll神

情景: 控制器中保存数据的方法是对第一次
Model->save()
调用的结果进行一些复杂的计算。 然后将结果保存在相关模型中。有时它会失败


是否有一种内置的方法可以使用cake执行此操作,当第二次保存失败时,它将删除第一条记录?

如果您在应用程序中执行这些计算时,必须先将其保存到数据库中,请使用:


这要求您使用支持事务处理的数据库和存储引擎,如。

如果您在应用程序中完全无法在不首先保存到数据库的情况下进行这些计算,请使用:


这需要使用支持事务的数据库和存储引擎,就像。

正是我要找的东西!tnxAll神秘蛇参考立即获得+1'd。正是我正在寻找的东西!TNX所有神秘的蛇引用立即获得+1。您熟悉模型回调函数吗?你也许可以利用他们想出一些东西。不,现在去那里。谢谢他们帮我省去了很多麻烦,并且很容易让你把一堆逻辑从你的控制器推到模型中。你熟悉模型回调函数吗?你也许可以利用他们想出一些东西。不,现在去那里。谢谢他们帮我省去了很多麻烦,并且很容易让你把一堆逻辑从你的控制器推到模型中。
$dbo = $this->Model->getDataSource();
$dbo->begin($this->Model);

$this->Model->save(...);

/* here be dragons */

if (/* success */) {
    $dbo->commit($this->Model);
} else {
    $dbo->rollback($this->Model);
}