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