Monday, November 29, 2010

Re: How do I Find Categories within in Contained Model in CakePHP

I have also posted this at Stackoverflow if you're interested

On 11/30/2010 1:23 PM, Thorpe Obazee wrote:
Hi Everyone,

I had a recent question here regarding Finding records via conditions in habtm. Now, I could search for posts within a category I searched for.

Now, my questions is how to I retrieve the categories of each post if it has two or more categories in this query:

$this->set('posts', $this->Category->find(     'first',     array(         'conditions' => array(             'Category.uri' => $uri         ),         'contain' => array('Post')     ) )); 

I'd imagine something like this:

$this->set('posts', $this->Category->find(     'first',     array(         'conditions' => array(             'Category.uri' => $uri         ),         'contain' => array('Post' => array(             'contain' => 'Category'         ))     ) )); 

Here's what my models look like.

// Category Model class Category extends AppModel {     var $name = 'Category';     var $hasAndBelongsToMany = array(         'Post' => array(             'className' => 'Post'         )     );     var $actsAs = array('Containable'); }  // Post Model     class Post extends AppModel {         var $name = 'Post';         var $hasAndBelongsToMany = array(             'Category' => array(                 'className' => 'Category'             )         );         var $actsAs = array('Containable');         var $virtualFields = array(             'date_posted' => 'DATE_SUB(Post.created, INTERVAL 7 DAY)'         );     } 

A sample data would be like this:

categories id name 1  holidays 2  destinations  posts id title 1  I am a post 2  I am another post  categories_posts post_id category_id 1       1 2       2 2       1 

I am retrieving posts from the Category, 'holidays'.

Array (     [Category] => Array         (             [id] => 3             [name] => holidays             [uri] => holidays             [created] => 2010-11-25 20:43:03             [modified] => 2010-11-25 20:43:03         )      [Post] => Array         (             [0] => Array                 (                     [id] => 1                     [title] => I am a post                 ),             [1] => Array                 (                     [id] => 2                     [title] => I am a another post                 )         ) ) 

The problem is that 1 of the posts are in two categories. I'd like to have that information also available so that I can show this in the view

/categories/view/holidays 
I am a post categories: holidays, destination I am a body text 

Check out the new CakePHP Questions site http://cakeqs.org and help others with their CakePHP related questions.
 
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+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en


No comments: