Cakephp: using $this->Component->load() in component
-
23-12-2019 - |
Question
I want to add components in an component.
I've found this on the cake
$this->OneTimer = $this->Components->load('OneTimer');
$this->OneTimer->getTime();
(in the fly-mehtod)
But, when I try it in my controller i get the following:
Fatal error: Call to a member function load() on a non-object
What am I doing wrong? Maybe the in the fly-method is only for controllers, and not for components?
Thanks!
Solution
You can just use App::uses
to import components in another component
App::uses('OneTimer', 'Controller/Component');
$this->OneTimer = new OneTimerComponent(new ComponentCollection());
$this->OneTimer->getTime();
OTHER TIPS
You can call a method of one component within another component using APP::import. Try this one
App::import('component', 'OneTimer');
$this->OneTimer = new OneTimerComponent();
$this->OneTimer->getTime();
It will work simply like this
App::uses('Component', 'Controller');
class CalendarComponent extends Object{
public $components = array('NotificationManager');
function test(){
$this->NotificationManager->callfunction();
}
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow