Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use a model in a component

Tags:

How do I use a model in a component in CakePHP?

In a controller you can use

public $uses = array(...);

but that doesn't work in a Component.

What does?

like image 219
AgeDeO Avatar asked Dec 13 '12 14:12

AgeDeO


3 Answers

Try this code:

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

Simple query with your model into your component

$result= $model->find('all');
like image 124
Alessandro Minoccheri Avatar answered Nov 24 '22 01:11

Alessandro Minoccheri


You could do it this way:

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

But it is suppose you don't use Models inside components.

like image 30
Alvaro Avatar answered Nov 24 '22 00:11

Alvaro


If you need the current Model you can use the initialize() or startup() callback of the Component.

public function initialize(Controller $controller) {
    $this->Controller = $controller;
    $this->Model = $this->Controller->{$this->Controller->modelClass};
    $this->modelAlias = $this->Model->alias;
    parent::initialize($controller);
}

Now you can access the model everywhere in your component.

public function countAllItems() {
    return $this->Model->find('count');
}
like image 43
Mathieu Avatar answered Nov 24 '22 01:11

Mathieu