0

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

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

所以我的问题的核心是更笼统的,如果这真的是正确的方法。我想到的另一件事是,如果中间出现问题,我担心会有不一致的机身时间,但已经删除了飞行记录。

我正在考虑用存储过程或其他方式来做这件事。

非常感谢您阅读本文,也许还有一些更蛋糕的方法。

最好的祝福,

cdjw

4

1 回答 1

0

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

看看代码,看看它在哪里被称为http://api.cakephp.org/class/model#method-ModelupdateCounterCache

于 2011-01-20T11:26:03.790 回答