Eigenlijk, als je het KAN doen met vinden, KAN je het doen met paginate. Je kunt hier een kijkje nemen
Maar om specifieker te zijn, kunt u de voorwaarden/limiet/velden/bevatten/volgorde enz. die u gebruikt bij zoeken toevoegen aan de paginafunctie.
Ik heb geen groep in de pagina gebruikt, maar het MOET werken :D
In jouw geval heb je zoiets als dit:
$this->paginate = array(
'fields' => array(
'Product.category_id',
'COUNT(Product.hotel_id) as total'
),
'group' => array(
'Product.category_id HAVING COUNT(Product.hotel_id) > 1')
)
);
$data = $this->paginate('Product');
Ik hoop dat het werkt, plaats een opmerking over je resultaat, als het niet werkt, moet je het negeren, omdat het de groepsvoorwaarde niet accepteert ... hoewel ik denk dat het zal werken omdat paginering uiteindelijk een vondst is.
BEWERKEN:
Je zou iets als dit kunnen proberen:
Overschrijf de paginate() en paginateCount() maar met een tweak, stiekem een voorwaarde zodat je kunt zien of het een paginering is met hebben of niet. Zoiets als dit:
function paginate($conditions, $fields, $order, $limit, $page = 1, $recursive = null, $extra = array()){
//if no having conditions set return the parent paginate
if (empty($conditions['having'])
return parent::paginate($conditions, $fields, $order, $limit, $page, $recursive, $extra)
//if having conditions set return your override
//override code here
}
Dan doe je iets soortgelijks in paginateCount(), op die manier heb je een selectieve paginate. onthoud om $condition ['have'] uit te schakelen zodra het niet nodig is of onthoud om het ergens te plaatsen dat geen invloed heeft op je vondst;)