Hey folks,
I've noticed a little bug in my code, overlooked it before but now I
need to fix it. In my Post controller, I paginate my query - but it
seems to be ignoring the conditions I pass to it. Basically the
condition is to check if a post is published. Now, In my default var,
I don't have the condition, as I want to be able to show non-published
stories in the admin views. This is what it looks like:
var $paginate = array('fields'=>array('Post.id', 'Post.title',
'Post.byline', 'Post.body', 'Post.comments_count' ,'Post.user_id',
'Post.url' ,'Post.post_date' , 'Post.published' ,'User.id',
'User.username'),'limit'=>10,
'order'=>array('Post.post_date'=>'DESC'));
However, in my index method, I change the limit to 1 story, and try to
pass in the condition to only show published posts:
function index()
{
$this->cacheAction = '1 hour';
$this->passedArgs['limit'] = 1;
$this->passedArgs['conditions'] = 'Post.published = 1';
$posts = $this->paginate();
$this->set(compact('posts'));
}
Now the limit value works fine, it only shows 1 post at a time. But
the conditions seems to be ignored. However, I have another method
that uses findAll, and when I pass in the condition it works fine:
function getposts($limit = 5)
{
$getposts = $this->Post->findAll('Post.published = 1',
array('Post.id','Post.url','Post.title',
'Post.byline','User.username'), 'Post.post_date DESC', $limit);
if(isset($this->params['requested'])) {
return $getposts;
}
$this->set('getposts', $getposts);
}
Can anyone explain to me why it's not working? I've looked through
the API for paginate and as far as I could see, that should be fine?
Thanks,
Tane
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake
PHP" 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
-~----------~----~----~----~------~----~------~--~---