In my CakePHP (1.2) app, I have two actions that both use pagination – index and search.
In a previous question I learnt that, in order to apply a threshold score to search results, I need to use the HAVING MySQL keyword. Since CakePHP does not support this natively, I need to drop down to a custom query in order to accomplish this.
All the guides I can find to custom query pagination involve overriding the paginate() and paginateCount() methods.
Since I still want to be able to paginate normally on the index however, I don’t want to change the normal pagination behaviour in the model.
Is there any way I can (ahem) have my Cake and eat it too?
Actually if you CAN do it with find you CAN do it with paginate. You can take a look here
But to be more especific you can add the conditions/limit/fields/contain/order etc that you use in find to the paginate function.
I haven’t use group in the paginate but it SHOULD work 😀
In your case you will have something like this:
Hope it works, post a comment of your result, if it doesn’t work you will have to override it, because it is not accepting the group condition… though I think it will work since pagination is a find in the end.
EDIT:
You may try to do something like this:
Override the paginate() and paginateCount() but with a tweak, sneak a condition so you can tell if its a pagination with having or not. Something like this:
Then you do something similar in paginateCount(), that way you have a selective paginate. remember to do unset $conditions[‘having’] once it is not needed or remember to put it somewhere that doesn’t affect your find 😉