【发布时间】:2011-08-30 15:47:03
【问题描述】:
我有一种情况,在模型的 afterSave 回调中,我试图访问来自远距离关联的数据(它是具有非常不稳定的关联链接的旧数据模型)。我发现在回调中我可以对模型执行 find 调用,但是如果我立即退出,则永远不会将记录插入到数据库中。缺少记录意味着我无法使用刚刚插入当前模型的数据在相关模型上执行查找。
我没有发现任何关于何时实际提交数据与何时使用afterSave 回调的信息。我正在使用遗留代码,但我没有看到任何迹象表明我们正在专门从事交易,所以我试图弄清楚我的选择可能是什么。
谢谢。
更新
该场景的要点是:我们正在接受活动注册,但人们可以被列入等待名单。用户可以注册(或被注册)给定的Date。注册完成后,我需要检查等待列表是否存在注册用户(WaitList.user_id)在注册日期(WaitList.date_id)的记录。如果存在这样的记录,则可以将其删除,因为它已成为有效注册。
旧架构将我置于注册不直接与日期绑定的位置,因此我无法轻松获得Date.id。相反,Registration->Registrant->Ticket->Date。不直观,我知道,但现在就是这样。甚至更好(包括讽刺),我们有一个名为attendees 的视图,它汇总了所有这些信息,我可以从中使用新创建的Registration->id 来返回Attendee.date_id。由于该记录不存在,因此在视图中不可用。
希望这能提供更多背景信息。
【问题讨论】:
标签: cakephp cakephp-1.2