使用CakePHP 1.3,是否在模型上 saveAll()
后触发了,或实现这种行为的方法?
也许afterSave()
已经这样做了?
具体来说,我想运行几个特定的方法,但只保存相关项后的 ,并且只有父项是新保存的实例。
传递给$created
的{{1}}参数之类的东西显然看起来很完美,但我至少90%确定在初始保存后模型上调用了afterSave()
- - 我理解必须在之前保存相关模型(这样他们就可以在FK字段中放置一些内容)。
您对获得此行为有何建议?
答案 0 :(得分:3)
CakePHP中没有内置Model::saveAll()
的回调,但我相信你可以在模型上覆盖该方法来创建自己的方法,如下所示:
// In your Model class...
function saveAll($data = null, $options = array()) {
parent::saveAll($data, $options);
$this->afterSaveAll(); // Your new custom callback.
}
function afterSaveAll() {
// Callback code.
}
我目前不确定如何生成与$created
类似的Model::afterSave()
变量行为。
答案 1 :(得分:0)
afterSave()就像save()...
一样它为每个模型调用,saveall只是一个带有save()的foreach,所以在每个模型中调用afterSave,在
中调用最终的save()答案 2 :(得分:0)
你不能只做这样的事情:
if($this->Recipe->saveAll($this->data)) {
//Do some stuff and checking for new insert.
$this->Recipe.doSomeStuff();
$this->redirect('/recipes');
}
也许您可以告诉它这是一个已创建的项目,因为您不会传递ID。我不知道,因为你没有发布任何代码。