22

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

在控制器中,您可以使用

public $uses = array(...);

但这在组件中不起作用。

有什么作用?

4

3 回答 3

35

试试这个代码:

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

将您的模型简单查询到您的组件中

$result= $model->find('all');
于 2012-12-13T14:13:44.997 回答
14

你可以这样做:

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

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

于 2012-12-13T14:13:57.703 回答
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');
}
于 2015-01-11T18:27:51.753 回答