Solved :) For some reason the initialization of the component failed, even if the controllers constructClasses() is called... solved by:
$this->Orders = new OrdersController(); $this->Orders->constructClasses(); $this->Orders->OrderProcess->initialize(&$this->Orders); :) On 21 Okt., 12:44, leberle <leberkne...@gmx.de> wrote: > Hi, i'm currently working on a cake-shell cron, and i got some trouble > using one of the components from my App. > I need to use a method from a component that is usally used in my > Orders-Controller, i tried: > > --------------------- > > App::import('Component','OrderProcess'); > > class OrdersCronShell extends Shell > { > var $uses = array('Order'); > var $OrderProcess = false; > > function main() > { > $this->OrderProcess = new OrderProcessComponent(); > $res = $this->Order->findAllByStatus('3'); > $order_ids = Set::extract('/Order/id',$res); > > $this->out("got ".count($order_ids)." pending orders"); > > for ($x = 0; $x < count($order_ids); $x++) { > $transfer_result = > $this->OrderProcess->transferOrder($order_ids > [$x]); > > if (!($transfer_result === true)) { > $this->out("failed transfering order > ".$order_ids[$x]."\r\n"); > } > } > } > > } > > --------------------- > > which results in: > Fatal error: Call to a member function loadOrder() on a non-object in > <app_path>/controllers/components/order_process.php on line 181 > > The amazing thing here: transferOrder IS called (so i guess there is a > component-object), but the call to the components loadOrder function > (called from within transferOrder) fails... o_O > > Then i tried wrapping the whole component-using to a Shell-Task class > (acording to the "using the mail component in a shell"-article from > the bakery) but the same error occured..... > > i even tried to load the controller instead of just the component: > > --------------------- > > App::import('Core', 'Controller'); > App::import('Controller', 'Orders'); > > class OrdersCronShell extends Shell > { > var $uses = array('Order'); > var $Orders; > > function main() > { > $this->Orders = new OrdersController(); > $this->Orders->constructClasses(); > > $res = $this->Order->findAllByStatus('3'); > $order_ids = Set::extract('/Order/id',$res); > > $this->out("got ".count($order_ids)." pending orders"); > > for ($x = 0; $x < count($order_ids); $x++) { > $transfer_result = > $this->Orders->OrderProcess->transferOrder > ($order_ids[$x]); > > if (!($transfer_result === true)) { > $this->out("failed transfering order > ".$order_ids[$x]."\r\n"); > } > } > } > > } > > --------------------- > > ..same error....any help? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---