CakePHP,从不同模型访问模型方法

时间:2014-01-02 11:57:08

标签: cakephp cakephp-2.0 cakephp-appmodel

当我在不同的模型表单示例中时,如何访问方法$this->someModel->find('all')

class DevicesController extends AppController {
     public function add(){
         $departments = $this->Department->find('all', array(
            'fields'     => array('id', 'mac')
     ));
     $this->set(compact('departments'));

    .....
    .....
}

现在出现错误,因为$this没有“看到”Department

我需要做些什么来实现它。

4 个答案:

答案 0 :(得分:1)

如果模型实际上是相关的(并且在模型中正确设置),那么它将是

$this->Device->Department->...

否则使用loadModel()作为记录。

答案 1 :(得分:0)

如果模型不相关,请尝试这种方式:

$this->loadModel('Department');
$departments = $this->Department->find('all', array(
            'fields'     => array('id', 'mac')
     ));
$this->set(compact('departments'));

答案 2 :(得分:0)

你不能只使用loadModel(),因为它是控制器的方法。 如果您的模型不相关,您可以这样做

$this->ModelName = ClassRegistry::init('ModelName');
$this->ModelName->find...

如果相关则只需使用

$this->ModelName->find...

答案 3 :(得分:0)

尝试使用此代码在控制器上加载不同的模型。 public $ uses = array('ModelName1','ModelName2') $这 - > ModelName1->发现()........