1

所以我有三个模型:

教练:var $hasAndBelongsToMany = array("Tour")

游览: var $hasAndBelongsToMany = array("Coach")

CoachesTour: var $belongsTo = array("Tour", "Coach")

Coach 和 Tour 之间存在 HABTM 关联,​​它应该使用 CoachesTour 作为连接模型。

我正在使用脚手架。修改 Tour 时,如果我向其中添加新的 CoachesTour,则不会调用 CoachesTour 的 beforeSave 方法。似乎连接模型的记录是作为 SQL 语句插入的,而不是使用连接模型。

我在这里错过了什么吗?

谢谢,

4

1 回答 1

0

如果您使用 saveAll 保存数据,则不会调用 beforeSave 回调。您必须覆盖 saveAll 函数。

例如在您的模型中:

public function saveAll($data, $options = array()) {
            /*
            your code you want execute before saving...
            */
    parent::saveAll($data, $options);
}

您必须知道,对于其他保存方法(saveMany、saveAssociated、save),beforeSave 回调是在保存之前触发的。但是对于 saveAll 它不是触发的,如果你想在保存之前执行一些代码,你可以在你的模型中覆盖它。

于 2012-08-19T11:15:13.770 回答