Yes my posts have many categories, probably categories would be called Tags in 
a regular blog setup.

Anyway I followed your advice and moved my code to my CategoriesController and 
following the answer to a similar question here 
http://stackoverflow.com/questions/4627120/cakephp-1-3-paginating-habtm-related-data
 I specified my joins and everything is now working (the link is for 1.3 but it 
worked fine on 2.2)

Thanks again for the help

Cheers

PW


On 20 Nov 2012, at 05:38, Andras Kende <and...@kende.com> wrote:

> Paul,
> 
> Sorry the code I gave earlier is not valid, my mistake...
> 
> this is better for that specific:
> 
> $posts = $this->paginate('Category');
> OR
> $posts = $this->paginate($this->Post->Category);
> 
> But now you mentioning HABTM which is something different….
> 
> So the reason for HABMT is that a single post can belong to multiple 
> categories ? 
> 
> Andras
> 
> On Nov 19, 2012, at 3:45 PM, Paul Willis <paul.wil...@me.com> wrote:
> 
>> And when I say I can't get it to work it is because using the code from 
>> Andras gives the error...
>> 
>> Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an 
>> error in your SQL syntax; check the manual that corresponds to your MySQL 
>> server version for the right syntax to use near 'paginate' at line 1
>> SQL Query: paginate
>> 
>> 
>> On 19 Nov 2012, at 23:41, Paul Willis <paul.wil...@me.com> wrote:
>> 
>>> Thanks for the replies but I can't seem to get any solution to work I 
>>> wonder if it is because I stupidly missed a vital detail...
>>> 
>>> My posts and categories are a HABTM relationship so I have no category_id 
>>> in the posts table.
>>> 
>>> I have a posts table, a categories table and a categories_posts table
>>> 
>>> PW
>>> 
>>> On 19 Nov 2012, at 22:22, lowpass <zijn.digi...@gmail.com> wrote:
>>> 
>>>> If your controller already declares a $paginate var it would be better
>>>> to add the conditions to it rather than redeclare the entire array.
>>>> Also, you can use the Post.category_id in the conditions.
>>>> 
>>>> $this->paginate['conditions'] = array('Post.category_id' => $id);
>>>> 
>>>> On Mon, Nov 19, 2012 at 4:15 PM, Andras Kende <and...@kende.com> wrote:
>>>>> 
>>>>> something like this should work:
>>>>> 
>>>>>       public function category($id = null) {
>>>>>               $this->paginate = array(
>>>>>                       'conditions' => array(
>>>>>                               'Category.id' => $id
>>>>>                       )
>>>>>               );
>>>>>               $posts = $this->Post->Category->paginate('Category');
>>>>>               //print_r($posts);  // to test here ...
>>>>>               $this->set(compact('posts'));
>>>>>       }
>>>>> 
>>>>> But since you paginating categories it may be better to do this from the 
>>>>> categories controller..
>>>>> 
>>>>> Andras Kende
>>>>> http:///www.kende.com
>>>>> 
>>>>> On Nov 19, 2012, at 12:57 PM, Paul Willis <paul.wil...@me.com> wrote:
>>>>> 
>>>>>> In my PostsController.php I have a function to find all the posts from a 
>>>>>> category…
>>>>>> 
>>>>>>     public function category($id = null) {
>>>>>>             $this->set('posts', $this->Post->Category->find('first', 
>>>>>> array(
>>>>>>                     'conditions' => array(
>>>>>>                             'Category.id' => $id
>>>>>>                     )
>>>>>>             )));
>>>>>>     }
>>>>>> 
>>>>>> 
>>>>>> This works fine and all my posts for the particular category are 
>>>>>> returned.
>>>>>> 
>>>>>> However I obviously get every post in that category and so now I would 
>>>>>> like to use paginate but I'm not sure how to add it to the above 
>>>>>> function.
>>>>>> 
>>>>>> PW
>>>>>> 
>>>>>> --
>>>>>> 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 post to this group, send email to cake-php@googlegroups.com.
>>>>>> To unsubscribe from this group, send email to 
>>>>>> cake-php+unsubscr...@googlegroups.com.
>>>>>> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>>>>>> 
>>>>>> 
>>>>> 
>>>>> --
>>>>> 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 post to this group, send email to cake-php@googlegroups.com.
>>>>> To unsubscribe from this group, send email to 
>>>>> cake-php+unsubscr...@googlegroups.com.
>>>>> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>>>>> 
>>>>> 
>>>> 
>>>> -- 
>>>> 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 post to this group, send email to cake-php@googlegroups.com.
>>>> To unsubscribe from this group, send email to 
>>>> cake-php+unsubscr...@googlegroups.com.
>>>> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>>>> 
>>>> 
>>> 
>>> -- 
>>> 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 post to this group, send email to cake-php@googlegroups.com.
>>> To unsubscribe from this group, send email to 
>>> cake-php+unsubscr...@googlegroups.com.
>>> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>>> 
>>> 
>> 
>> 
>> -- 
>> 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 post to this group, send email to cake-php@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> cake-php+unsubscr...@googlegroups.com.
>> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>>  
>>  
> 
> 
> -- 
> 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 post to this group, send email to cake-php@googlegroups.com.
> To unsubscribe from this group, send email to 
> cake-php+unsubscr...@googlegroups.com.
> Visit this group at http://groups.google.com/group/cake-php?hl=en.
>  
>  

-- 
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 post to this group, send email to cake-php@googlegroups.com.
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.


Reply via email to