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!

Was it helpful?

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
scroll top