在Cakephp的afterSave回调函数中,我正在尝试创建一条新记录,但它正在保存空数据。
public function afterSave($created, $options = array()) {
if ($any_condition) {
$record = $this->find('first', array('conditions' => array('id' => $this->data[$this->alias]['id'])));
$record[$this->alias]['id'] = null;
$this->create();
$this->save($record);
}
}
当我在db中看到记录时,一切都是空的。我需要知道我在这里做错了什么?
答案 0 :(得分:0)
好的,根据你的代码看起来你会无限次地调用afterSave。如果您需要保存重复信息,我不会在回调中执行此操作。我会从控制器或创建模型函数。
在同一模型中创建自己的功能。然后,您可以调用saveDuplicate而不是保存。这是假设蛋糕2。
chown nagios:nagios /usr/local/nagios/libexec/check_ip.pl
答案 1 :(得分:0)
您始终可以使用ClassRegistry类来获取模型的新实例
public function afterSave($created, $options = array()) {
if ($any_condition) {
$record = $this->find('first', array('conditions' => array('id' => $this->data[$this->alias]['id'])));
$model = ClassRegistry::init($this->alias);
$model->create($record);
$model->save($record);
}
}