Cakephp ClassRegistry :: init问题

时间:2011-07-18 08:08:27

标签: php cakephp

请帮我解决这个问题

我创建了一个组件。在组件中我有这样的方法

function storeClick($id = ''){

    if(strlen($id) > 0){
       $ip = $this->RequestHandler->getClientIP();

        $data['FocikiClickDetail']['ip'] = $ip;
        $data['FocikiClickDetail']['photo_id'] = $id;
          $mo = ClassRegistry::init('ClickDetail');

          $mo->save($data);

          return true;
    }
    return false;
}

问题在于

$mo = ClassRegistry::init('ClickDetail');

每次删除此行时,我的应用程序都会照常运行,否则就不会

非常感谢。

1 个答案:

答案 0 :(得分:2)

在组件中加载模型的更好实践方法是通过控制器,并使用loadModel();

在你的组件中,设置initialize()函数,如果你还没有:

function initialize($controller, $settings) {
    $this->Controller =& $controller;
}

然后在组件函数中,使用loadModel加载模型

$this->Controller->loadModel('ClickDetail');
$this->Controller->ClickDetail->save($data);