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
-~----------~----~----~----~------~----~------~--~---

Reply via email to