Hmm... ok, I understand setting up the function in the Product model
to run the query but I'm confused about the CategoryController.
If I try to run:

$catProds = $this->Product->getCategoryProducts($categoryId);

I get "Undefined property: CategoryController::$Product "

or if I try
$catProds = $this->Product->getCategoryProducts($id);
I get "Undefined property: Category::$Product"

I also tried:

loadModel('Product');
$p = new Product();
$this->set('Products', $this->$p->getProductsByCategory($id));

yeilds the error:
Object of class Product could not be converted to string


So how I can I access the Product model to return an array of Products
and add them to the CategoryController?



On May 9, 3:47 am, soytuny <[EMAIL PROTECTED]> wrote:
> I don't think you will have much luck getting cake to produce a
> similar query.
>
> But an easy solution is to wrap your query inside a function in your
> Product model.  Say
>
> function getCategoryProducts($categoryId)
> {
>   return $this->query(/*that query you've written*/);
>
> }
>
> Then you can use that in your controllers:
>
> $catProds = $this->Product->getCategoryProducts($categoryId);
>
> Just be sure to use table aliases like "FROM products AS Product" to
> make the array nicer.
>
> Russell Austin
>
> On May 8, 3:04 pm, johnvv <[EMAIL PROTECTED]> wrote:
>
> > I'm to new using cake so file this question under 'newbies'...
>
> > I have the following models:
> > - Product (contains reference to manufacturer_id... and other
> > information)
> > - ProductImage (id,product_id,type [thumbnail,medium,large],
> > image_url)
> > - Manufacturer
> > - Category
> > - CategoryProduct (category_id, product_id)
>
> > Each Category has many Products
> > Each Product has 3 ProductImages (thumbnail, medium, large) - maybe
> > could be 3 separate "hasOne" associations with conditions for each
> > type
> > Each Product has 0 or 1 Manufacturer
>
> > I'd like to minimize the number of queries when viewing the products
> > in a category.
> > I've tried many different associations but each time cake has
> > generated separate queries to obtain the images and manufacturers.
>
> > Without cake, this can be accomplished with 1 query.  It would look
> > something like this:
> > "SELECT product.*,product_image.*,manufacturer.*
> > FROM category_product
> > INNER JOIN category ON category.category_id =
> > category_product.category_id
> > INNER JOIN product ON products.product_id =
> > category_product.product_id
> > INNER JOIN product_image ON product_image.product_id =
> > product.product_id AND product_image.type = 'thumbnail'
> > LEFT JOIN manufacturer ON manufacturer.manufacturer_id =
> > product.manufacturer_id
> > WHERE category_product.category_id = $id
> > ORDER BY $sort
> > LIMIT $start, $limit
>
> > But everything I have tried in cake has resulted in 40-some queries to
> > accomplish the same result.
> > Any ideas?


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake 
PHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to