Вопрос по php, cakephp – Использовать модель в компоненте

20

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

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

public $uses = array(...);

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

Что значит?

Ваш Ответ

3   ответа
3

Если вам нужна текущая модель, вы можете использоватьинициализации () или жезапускать() обратный вызов компонента.

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

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

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

Но если вы неИспользовать модели внутри компонентов.

Когда вы начинаете использовать более одной модели в компоненте, может быть лучше использовать поведение. Alvaro
почему вы советуете не использовать модель внутри компонента? Alessandro Minoccheri
+1, так как ты неудачник. @AlessandroMinoccheri, и вы добавили ответ в то же время. Но ты немного голосов :( Habeeb Perwad
это всегда зависит от конкретного случая использования. вопрос не показывает слишком много, все же. mark
33

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

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

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

$result= $model->find('all');
лучшеYourmodel (верхний регистр) mark
мы приветствуем @LucPrevoo Alessandro Minoccheri
Это работает, спасибо AgeDeO
да: D ты спас мне жизнь: D mostafaznv

Похожие вопросы