我的情况是,在模型的afterSave
回调中,我正在尝试从远程关联访问数据(它是具有非常不稳定的关联链接的遗留数据模型)。我发现在回调中我可以在模型上执行查找调用,但如果我向右退出,则记录永远不会插入到数据库中。缺少记录意味着我无法使用刚插入当前数据的相关模型执行查找。
我还没有发现任何关于何时实施afterSave
回调的实际数据的提及。我正在使用遗留代码,但我没有看到任何迹象表明我们专门处理交易,所以我想弄清楚我的选择可能是什么。
感谢。
更新
方案的要点是:我们正在进行事件注册,但是人们可以等待列出。用户可以注册(或注册)给定的Date
。注册完成后,我需要在注册日期(WaitList.user_id
)上检查等待列表中注册用户(WaitList.date_id
)是否存在记录。如果存在这样的记录,则可以将其删除,因为它已成为主动注册。
旧版架构将我置于注册与日期无直接关系的位置,因此我无法轻松获得Date.id
。相反,Registration->Registrant->Ticket->Date
。我知道,不直观,但它现在就是这样。即使更好(包含讽刺),我们也有一个名为attendees
的视图,可以将所有这些信息都滚动起来,然后我可以使用新创建的Registration->id
返回Attendee.date_id
。由于记录不存在,因此在视图中不可用。
希望这能提供更多的背景。
答案 0 :(得分:0)
在afterSave中查找查询的目的是什么?
<强>更新强>
是否可以正确关联记录?或者我们是否正在谈论过多的重构以使其值得?如果无法修改记录之间的关联,您可以将支票移至控制器。
类似(在伪代码中)
if (save->isSuccessful) {
if (onWaitList) {
// delete record
}
}
这不是最佳做法,但它可以帮助您解决问题。