Sebenarnya jika Anda BISA melakukannya dengan find, Anda BISA melakukannya dengan paginate. Anda dapat melihat di sini
Tetapi untuk lebih spesifik Anda dapat menambahkan condition/limit/fields/contain/order dll yang Anda gunakan dalam find ke fungsi paginate.
Saya belum menggunakan grup di paginate tetapi HARUS berfungsi :D
Dalam kasus Anda, Anda akan memiliki sesuatu seperti ini:
$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');
Semoga berhasil, kirim komentar hasil Anda, jika tidak berhasil, Anda harus menimpanya, karena tidak menerima kondisi grup ... meskipun saya pikir itu akan berhasil karena pagination pada akhirnya ditemukan.
EDIT:
Anda dapat mencoba melakukan sesuatu seperti ini:
Ganti paginate() dan paginateCount() tetapi dengan tweak, selipkan kondisi sehingga Anda dapat mengetahui apakah itu pagination dengan memiliki atau tidak. Sesuatu seperti ini:
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
}
Kemudian Anda melakukan sesuatu yang serupa di paginateCount(), dengan begitu Anda memiliki paginate selektif. ingat untuk melakukan unset $conditions['have'] setelah tidak diperlukan atau ingat untuk meletakkannya di suatu tempat yang tidak memengaruhi temuan Anda;)