1

特定のプラグインを通過し、モデル内で関数を呼び出す必要があるモデルがあります。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;
}

私は何を間違っていますか?

4

0 に答える 0