Подтвердить что ты не робот

Использовать модель в компоненте

Как использовать модель в компоненте в CakePHP?

В контроллере вы можете использовать

public $uses = array(...);

но это не работает в компоненте.

Что делает?

4b9b3361

Ответ 1

Попробуйте этот код:

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

Простой запрос с вашей моделью в ваш компонент

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

Ответ 2

Вы можете сделать это следующим образом:

$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');
}