Ответ 1
Попробуйте этот код:
$model = ClassRegistry::init('Yourmodel');
Простой запрос с вашей моделью в ваш компонент
$result= $model->find('all');
Как использовать модель в компоненте в CakePHP?
В контроллере вы можете использовать
public $uses = array(...);
но это не работает в компоненте.
Что делает?
Попробуйте этот код:
$model = ClassRegistry::init('Yourmodel');
Простой запрос с вашей моделью в ваш компонент
$result= $model->find('all');
Вы можете сделать это следующим образом:
$this->ModelName = ClassRegistry::init('ModelName');
Но предполагается, что вы не используете модели внутри компонентов.
Если вам нужна текущая модель, вы можете использовать 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');
}