在组件中使用模型

时间:2012-12-13 14:10:50

标签: php cakephp

如何在CakePHP中的组件中使用模型?

在控制器中,您可以使用

public $uses = array(...);

但这在组件中不起作用。

是什么?

3 个答案:

答案 0 :(得分:35)

试试这段代码:

$model = ClassRegistry::init('Yourmodel');

将模型简单查询到组件中

$result= $model->find('all');

答案 1 :(得分:14)

你可以这样做:

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

但是假设你没有在组件内使用模型。

答案 2 :(得分:3)

如果您需要当前的模型,可以使用组件的initialize()startup()回调。

public function initialize(Controller $controller) {
    $this->Controller = $controller;
    $this->Model = $this->Controller->{$this->Controller->modelClass};
    $this->modelAlias = $this->Model->alias;
    parent::initialize($controller);
}

现在,您可以在组件中的任何位置访问模型。

public function countAllItems() {
    return $this->Model->find('count');
}