CakePHP afterSave 计时

标签 cakephp cakephp-1.2

我有一种情况,在模型的 afterSave 中回调,我正在尝试从远程关联访问数据(这是一个具有非常不稳定的关联链接的遗留数据模型)。我发现的是,在回调中我可以对模型执行查找调用,但如果我此时退出,则记录永远不会插入到数据库中。缺少记录意味着我无法使用刚刚插入当前的数据对相关模型执行查找。

关于 afterSave 何时实际提交数据,我还没有发现任何提及。回调参与。我正在使用遗留代码,但我没有看到任何迹象表明我们专门从事交易,所以我想弄清楚我的选择可能是什么。

谢谢。

更新

场景的要点是这样的:我们正在接受事件注册,但人们可能会被列入候补名单。用户可以注册(或被注册)给定的 Date .注册完成后,我需要在注册日期(WaitList.user_id)检查等待列表中是否存在注册用户(WaitList.date_id)的记录。如果存在这样的记录,则可以将其删除,因为它已成为有效注册。

遗留架构让我处于注册不直接与日期相关联的位置,因此我无法获得 Date.id容易地。相反,Registration->Registrant->Ticket->Date .不直观,我知道,但现在就是这样。甚至更好(包括讽刺),我们有一个名为 attendees 的 View 汇总所有这些信息,我可以从中使用新创建的 Registration->id返回 Attendee.date_id .由于记录不存在,因此在 View 中不可用。

希望这能提供更多背景信息。

最佳答案

afterSave 中的查找查询的目的是什么?

更新

是否可以正确关联记录?或者我们是否在谈论太多的重构以致于不值得?如果无法修改记录之间的关联,您可以将检查移至 Controller 。

类似(伪代码)

if (save->isSuccessful) {
    if (onWaitList) {
        // delete record
    }
}

这不是最佳做法,但可以帮助您解决问题。

关于CakePHP afterSave 计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7245956/

相关文章:

php - 将数组传递给 CakePHP 中的 requestAction

mysql - 查找 2 个日期字段相隔超过 2 个工作日的行

mysql - CakePHP 1.2 导出为 PDF 格式

php - 如何在 CakePHP 1.2 中将查询字符串传递给 testAction?

cakephp - 如何限制cakephp中的分页

authentication - 使用2个表的CakePHP Auth组件

php - CakePHP 3 : Unable to insert fixtures when running phpunit

php - 在 CakePHP 中提交对象的表单数据时,跨表添加一对多关系的正确方法是什么?

php - Cake php连接查询

php - CakePHP:插入具有特定 ID 的记录