Date de publication : Jul 24, 2012 4:23:44 PM
La pagination dans un contrôleur, permet de définir pour l'ensemble de ses actions, des options par défaut pour les requêtes SQL, qui serviront pour afficher des listes.
Exemple, on définit pour Rapprochable, tous les champs à prendre, l'order by à utiliser, etc.. (à mettre dans les attributs de RapprochableController) :
public $paginate = array(
'fields' => array('Rapprochable.id', 'Rapprochable.code_sages', 'Rapprochable.codique', 'Rapprochable.code_annexe',
'Rapprochable.libelle_etat', 'Rapprochable.denomination', 'Rapprochable.libelle_liaison', 'Rapprochable.libelle_abrege',
'Rapprochable.adresse1', 'Rapprochable.adresse2', 'Rapprochable.date_unification', 'Topad.code_sages', 'Topad.libelle_etat', 'Topad.denomination',
'Topad.libelle_liaison', 'Topad.libelle_standard', 'Topad.adresse1', 'Topad.adresse2'),
'limit' => 30,
'order' => array(
'Rapprochable.code_sages' => 'asc',
'Rapprochable.code_codique' => 'asc',
));
Si, pour une certaine action, on veut une pagination différente, on modifie à la volée ce champ paginate :
public function listeOrphelines() {
$this->Rapprochable->recursive = 0; // on ne veut récupérer que les jointures de 1er niveau
$this->paginate['conditions'] = array('Topad.code_nua' => null);
$this->set('rapprochables', $this->paginate());
}
Dans ce cas, il y a ensuite une redirection (automatique) sur la vue liste_orphelines.ctp.