2011-08-09 4 views
0

J'ai un simple contrôleur CakePHP, avec la méthode d'index. Mon souhait est d'utiliser le même contrôleur et la même méthode, dans deux cas, où dans un cas il va sélectionner (liste) les enregistrements de la première catégorie, dans la seconde de la deuxième catégorie. Donc ça a l'air très simple.Même contrôleur CakePHP avec différents "ordre par"

Mais dans ces deux cas, j'ai besoin d'une instruction MySQL "Order By" différente. Dois-je réécrire les méthodes de pagination ou existe-t-il un autre moyen d'y parvenir?

Merci d'avance!

MISE À JOUR: Voici comment la sélection des dossiers est faite:

$contents = $this->Content->find('all', array('fields'=>array('Content.*'), 'order'=>array('Content.id DESC'), 'conditions' => array('Content.category_id' => $category_id))); 

En général, je ferai en page avec

$data = $this->paginate('Content'); 

Mais dans ce cas, il ne suffit pas, parce que je besoin (au moins) de deux instructions différentes "Order By"

Répondre

0

Réglez simplement $this->paginate['Model']['order'] entre les appels à $this->paginate('Model');. Si ce n'est pas clair, mettez à jour votre réponse avec du code.

$this->paginate['Content'] = array('fields'=>array('Content.*'), 'order'=>array('Content.id DESC'), 'conditions' => array('Content.category_id' => $category_id))); 
$contents = $this->paginate('Content'); 

nu à l'esprit que vous aurez des problèmes paginating 2 models on the same page.

+0

J'ai mis à jour ma question, pouvez-vous jeter un oeil, s'il vous plaît? – user198003

+0

J'ai mis à jour ma réponse, si vous 'pr ($ this-> paginate)' il sera clair que c'est juste une variable que vous pouvez changer à volonté – Dunhamzzz

Questions connexes