在组件中使用模型

问题描述 投票:21回答:3

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

在控制器中,您可以使用

public $uses = array(...);

但这在组件中不起作用。

什么

php cakephp
3个回答
35
投票

试试这段代码:

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

将模型简单查询到组件中

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

14
投票

你可以这样做:

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

但是假设您不在组件内使用模型。


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');
}
© www.soinside.com 2019 - 2024. All rights reserved.