如何在CakePHP中的组件中使用模型?
在控制器中,您可以使用
public $uses = array(...);
但这在组件中不起作用。
是什么?
答案 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');
}