2009-10-01 7 views
1

je suis en train d'utiliser le concept de pagination CakePHP pour mon application ..

var $ paginate = array ( 'limite' => 5, 'ordre' => array ( « Rapport .report_id '=>' desc ' ) );

et, dans l'action CakePHP

 $conditions=array('Report.user_id'=>$userId); 
     $this->paginate['Report']['conditions']=$conditions; 
     $this->paginate['Report']['group']='Report.report_id'; 
     $this->paginate['Report']['limit']=5; 
     $allreports=$this->paginate('Report'); 

Maintenant, cela me donne les 5 entrées réelles de la requête avec le groupe par condition, mais je ne suis pas obtenir les numéros de page maintenant dans la vue ..

en la vue

i ont utilisé comme

  <?php echo $paginator->numbers(); ?> 

mais il doe snt affiche quelque chose ?? pourquoi donc .. me guider ...

Répondre

3

Bien que Model::find() prenne en charge le paramètre group, son support n'a pas été implémenté pour la pagination. Si vous passez un group dans $paginate, bien qu'il renverra les résultats corrects, il renverra un enregistrement incohérent COUNT (utilisé pour déterminer le nombre de pages). Il y a un ticket to add support for this mais il ne sera pas implémenté avant CakePHP 2.x. En attendant, vous devrez remplacer paginateCount() dans votre modèle comme indiqué dans les exemples sous Custom Query Pagination dans le manuel.