在插入之前和删除之后

时间:2011-01-18 14:51:56

标签: cakephp models after-save

我在初学者项目中再次失败了。我正在为具有起飞和着陆时间的航班添加记录。因此,每次我插入一个航班或删除它(编辑是另一个问题)我想更新特定飞机(不同型号)的总机体时间。现在有几个问题出现,就像我应该在我的模型中使用afterSave / beforeDelete函数执行此操作,或者如果我应该以任何其他方式执行此操作,例如mysql触发器甚至在我的控制器中。

我的主要问题是我试图在afterSave()和beforeDelete调用中收集我需要的所有信息,而我不知道如何在那里访问数据。特别是在beforeDelete()调用中,将$ this->数据数组接为空,这样我就无法计算从总机体时间中减去的时间量。

所以我的问题的核心更多是一般性的,如果这确实是正确的方法。我想到的另一件事是,如果中间出现问题,我担心会有一个不一致的机身时间,但是已经删除了航班记录。

我正在考虑使用存储过程或其他方式。

非常感谢您阅读此内容,也许还有一些更白皙的方式来做这件事。

致以最诚挚的问候,

cdjw

1 个答案:

答案 0 :(得分:0)

看看counterCache如何在核心中工作,听起来这就是你需要做的。这一切都发生在模型回调中。

查看代码并查看其名称http://api.cakephp.org/class/model#method-ModelupdateCounterCache