Bonjour,
J'ai une question concernant PHP et CakePHP :
J'aimerai savoir comment on peut classer ses données.
Par exemple, j'ai un ensemble de définitions de mots et j'aimerai les classer par ordre alphabétique.
J'aimerai que l'administrateur les insère dans l'ordre qui lui plait dans la base de donnée mais que lorsque cela arrive en ligne, les mots soient mis par ordre alphabétique.
Merci de votre aide...

2 réponses


cb
Réponse acceptée

Dans la Doc :
http://book.cakephp.org/2.0/en/models/retrieving-your-data.html

Il faut utiliser la variable order dans ton find.

find(string $type = 'first', array $params = array())

ou le tableau $params

$params = array(
    'conditions' => array('Model.field' => $thisValue), //array of conditions
    'recursive' => 1, //int
    'fields' => array('Model.field1', 'DISTINCT Model.field2'), //array of field names
    'order' => array('Model.created', 'Model.field3 DESC'), //string or array defining order
    'group' => array('Model.field'), //fields to GROUP BY
    'limit' => n, //int
    'page' => n, //int
    'offset' => n, //int
    'callbacks' => true //other possible values are false, 'before', 'after'
)
Cerrer
Auteur
Réponse acceptée

Merci, n'étant pas une star en anglais, je n'avais pas trouvé ces infos dans la documentation mais là j'ai trouvé une traduction donc parfait.
Finalement j'ai fait ceci pour afficher dans l'ordre alphabétique :

/**
    * Ordre Alphabétique
    **/
    function index(){
        $d'keywords'] = $this->Post->find('threaded',array(
            'conditions'    =>  array('type'=>'keyword','online'=>'1'),
            'order' =>  'name ASC',
            'fields' => array('id','name','content','imgk')
        ));
        $this->set($d);
        debug($d);
    }

Et ça marche bien donc je suis content :)