Ok, im not sure what I was doing wrong but it was just as simple as you mentioned. I just added $this->Product->recursive = 2; and viola, everything was fetched properly.
Thanks a million! On May 18, 11:55 am, justclint <[email protected]> wrote: > Hey Faza and Rick thanks for your reply. Yes, I am trying to get > Gender.name. So what Im trying to do is get my array to show up > something like: > > [Product] => Array > ( > [id] => 21 > [color_id] => 3 > [image_thumb] => aw_ls_black.png > [price] => 27.95 > [shipping_price] => 5.00 > [style_id] => 1 > ) > > [Style] => Array > ( > [id] => 1 > [name] => All Weather Longsleeve Compression Shirt > > [Gender] => Array > ( > [gender_id] => 2 > [gender_name] => Men > ) > [category_id] => 2 > [material_id] => 2 > [application_id] => 2 > > *Notice the sub array Gender under Style array > > I tried doing the "$this->Style->recursive = 1; " and > "$this->Product->Style->recursive = 1; " in my products_controller as shown > below but > > still not getting the correct results. > > function view($id = null) { > if (!$id) { > $this->Session->setFlash(__('Invalid Product.', > true)); > $this->redirect(array('action'=>'index')); > } > $this->Style->recursive = 1; > $this->set('product', $this->Product->read(null, $id)); > > } > > And in my product/view Ive tried echo $product['Gender']['name'] > $product['Style']['Gender.name'] but obviously its showing as an > unrecognized variable. > > Im reading up on the containable right now as I've never used that > behavior before. > > Any additional help would be great. Thanks guys! > > On May 18, 6:19 am, Rick <[email protected]> wrote: > > > What name are you trying to get? Looks like you have Style.name > > already available in your result. > > > If there is a Gender.name you are trying to see you can set the > > recursive to a higher number before the find: > > > $this->Style->recursive = 2; > > > Or use the Containable behavior as mentioned above. > > > On May 17, 5:22 pm, justclint <[email protected]> wrote: > > > > Im pulling the data successfully but Im trying to get the "name" value > > > as opposed to the "id" value in a separate table. > > > > When I do debug I get this: > > > ( > > > [Product] => Array > > > ( > > > [id] => 21 > > > [color_id] => 3 > > > [image_thumb] => aw_ls_black.png > > > [price] => 27.95 > > > [shipping_price] => 5.00 > > > [style_id] => 1 > > > ) > > > > [Style] => Array > > > ( > > > [id] => 1 > > > [name] => All Weather Longsleeve Compression Shirt > > > [gender_id] => 2 > > > [category_id] => 2 > > > [material_id] => 2 > > > [application_id] => 2 > > > > For sake of example I will just reference the gender_id. I need it to > > > show the name not the id. > > > > I have the following tables/models. > > > > Products > > > Styles > > > Genders > > > > Product Model: > > > class Product extends AppModel { > > > > var $name = 'Product'; > > > > var $belongsTo = array( > > > 'Style' => array( > > > 'className' => 'Style', > > > 'foreignKey' => 'style_id', > > > 'conditions' => '', > > > 'fields' => '', > > > 'order' => '' > > > ), > > > ); > > > > } > > > > Styles Model: > > > class Style extends AppModel { > > > > var $name = 'Style'; > > > > var $belongsTo = array( > > > 'Gender' => array( > > > 'className' => 'Gender', > > > 'foreignKey' => 'gender_id', > > > 'conditions' => '', > > > 'fields' => '', > > > 'order' => '' > > > ), > > > 'Category' => array( > > > 'className' => 'Category', > > > 'foreignKey' => 'category_id', > > > 'conditions' => '', > > > 'fields' => '', > > > 'order' => '' > > > ), > > > 'Material' => array( > > > 'className' => 'Material', > > > 'foreignKey' => 'material_id', > > > 'conditions' => '', > > > 'fields' => '', > > > 'order' => '' > > > ), > > > 'Application' => array( > > > 'className' => 'Application', > > > 'foreignKey' => 'application_id', > > > 'conditions' => '', > > > 'fields' => '', > > > 'order' => '' > > > ) > > > ); > > > > } > > > > Gender Model: > > > var $name = 'Gender'; > > > > var $hasMany = array( > > > > 'Style' => array( > > > 'className' => 'Style', > > > 'foreignKey' => 'gender_id', > > > 'dependent' => false, > > > 'conditions' => '', > > > 'fields' => '', > > > 'order' => '', > > > 'limit' => '', > > > 'offset' => '', > > > 'exclusive' => '', > > > 'finderQuery' => '', > > > 'counterQuery' => '' > > > ) > > > ); > > > > } > > > > ?> > > > > The page im trying to get this on is my product view page. Action > > > looks like this: > > > > function view($id = null) { > > > if (!$id) { > > > $this->Session->setFlash(__('Invalid Product.', > > > true)); > > > $this->redirect(array('action'=>'index')); > > > } > > > > $this->set('product', $this->Product->read(null, $id)); > > > } > > > > Ive been playing with this for hours and I just cant seem to get it. > > > > If you need more info, please dont hesitate to ask. > > > > Your help is greatly appreciated. > > > > Thanks! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] 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 -~----------~----~----~----~------~----~------~--~---
