让我们假设以下情况:
- A属于B,C
- B有很多A
- C 有很多 A
- A 有字段数量
- B 有字段 total_quantity
B 中的总数量将 A 中所有相关单个记录的所有单个数量相加。
我有 ModelC/edit,用户可以在其中添加/删除/修改 A。
每次追加、修改或删除 A 中的记录时,我都想更新 B.total_quantity。
基本上,我有 3 种可能进行更新:
- 在 ModelCController 中手动
- 在 ModelA.AfterSave
- 在数据库中使用触发器
我的第一个选择是解决方案 2,但我发现了它的问题,所以我需要帮助。
在 ModelA.AfterSave 我只有新的、修改过的数据。我怎么知道 A.quantity 是否已更改?没有 $this->old['ModelA'] 或类似的东西。即使我知道这些信息,我也无权访问 ModelB,因为没有 $this->data['ModelB']...
有人可以帮忙吗?