Hello David,

Thanks very much for jogging my memory.  I was not trying to do anything 
out of scope but just have re-usable functions that I can call in other 
controllers.  I moved the getCart, and totals into the cart model and was 
able to greatly simplify my code.  Everything is working like a champ.

Thanks for the help from everyone.
Brian

On Wednesday, February 27, 2013 8:03:24 AM UTC-5, [email protected] wrote:
>
>
> On Wednesday, February 27, 2013 2:55:53 AM UTC+2, lirc201 wrote:
>>
>> I'm in 2 different controllers.  In the checkout controller, I'm trying 
>> to call a function in the cart controller.
>>
>> Are you sure that the function is in the cart controller?  The $uses 
> variable indicates which other models this model will use (not which other 
> controllers).  If you want to call a method on another controller you will 
> need to use either App::Import or RequestAction.  If the error you are 
> getting is an SQL error rather than a method not found error it would seem 
> like the get() method is on the model.
>
> In general, many people will tell you that calling one controller from 
> another is a bad idea and should only be done as a last resort.
>
> If it is true that you are managing to call a controller method then it 
> may be simpler to move these methods into the Cart model which you would 
> then be able to access from the $uses variable.  
>
> If the methods are really on the model (or if you choose to move them 
> there) you will need to be acting on a particular instance of Cart so you 
> would do something like:
> $this->Cart->id = $CartID; // assumes you already have the id of the cart 
> you want
> $Cart = $this->Cart->get(); // assumes that the only state information 
> that get needs is the id and will read any additional information for itself
>
> Alternatively, you may need to find the cart you are looking for and pass 
> that information into the get call.  I.e.
> $Cart = $this->Cart->find('first', array('conditions' => 
> array('Cart.customer_id' => $CustomerID)));
> $Total = $this->Cart->total($Cart);
>
> As a side note:
> One debugging method you could use when confronted with this type of 
> situation is to copy and paste the query that generated the error directly 
> into something like PhpMyAdmin and see what part of the query is causing 
> the SQL error.  My guess is that in your case the query has a where clause 
> with 'WHERE Cart.id=' with no id specified or something like that.
>
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to