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?
Try this code:
$model = ClassRegistry::init('Yourmodel');
Simple query with your model into your component
$result= $model->find('all');
You could do it this way:
$this->ModelName = ClassRegistry::init('ModelName');
But it is suppose you don't use Models inside components.
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');
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With