特定のプラグインを通過し、モデル内で関数を呼び出す必要があるモデルがあります。find('all') を呼び出すことはできますが、モデル内のカスタム関数を呼び出すことはできません。
プラグインのモデル関数を呼び出すモデル:
public function copy($id){
$this->id = $id;
$original = $this->read();
$new = $original['DocModule'];
unset($new['id']);
if(!$this->save($new)){
CakeLog::debug("Could not copy DocModule in DocModule.php");
return false;
}
$newId = $this->getLastInsertID();
$modelName = $original['Module']['name'];
$this->{$modelName} = ClassRegistry::init($modelName.'.'.$modelName);
CakeLog::debug(print_r($this->{$modelName}->find('all'),1));
$this->{$modelName}->copyModule($newId, $id);
}
プラグインのモデル機能:
public function copyModule($newDocModId, $oldDocModId) {
$old = $this->find('first', array('conditions' => array('doc_module_id' => $oldDocModId), 'recursive' => -1));
$new = $old;
unset($new['Weather']['id']);
$new['Weather']['doc_module_id'] = $newDocModId;
if (!$this->save($new)) {
CakeLog::debug("Could not copy weather. Old = " . $oldDocModId . " | New = " . $newDocModId);
return false;
}
return true;
}
私は何を間違っていますか?