AgeDeO
AgeDeO

Reputation: 3157

Use a model in a component

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?

Upvotes: 22

Views: 20034

Answers (3)

Mathieu
Mathieu

Reputation: 46

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

Upvotes: 3

Alessandro Minoccheri
Alessandro Minoccheri

Reputation: 35963

Try this code:

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

Simple query with your model into your component

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

Upvotes: 35

Alvaro
Alvaro

Reputation: 41595

You could do it this way:

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

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

Upvotes: 14

Related Questions