Bonjour,

Mon architecture est la suivante : "Course" hasMany "Dates". Chaque cours a plusieurs champs (id, lieu, prix, etc.) et des dates (séances) lui sont liées dans une table différente avec des informations spécifiques.

Exemple :

array(
    (int) 0 => array(
        'Course' => array(
            'id' => '15015',
            'created' => '2014-11-26 13:06:26',
            'statut' => 'Actif',
            'lieu' => 'Lieu',
            'prix' => '200',
            'places' => '12'
        ),
        'Date' => array(
            (int) 0 => array(
                'id' => '1351',
                'created' => '2014-11-27 10:14:00',
                'course_id' => '15015',
                'date' => '2015-04-13',
                'heure_debut' => '18:00:00',
                'heure_fin' => '20:00:00',
            ),
            (int) 1 => array(
                'id' => '1352',
                'created' => '2014-11-27 10:14:00',
                'course_id' => '15015',
                'date' => '2015-04-14',
                'heure_debut' => '18:00:00',
                'heure_fin' => '20:00:00'
            )
       )
)

J'ai une liste de plusieurs cours et j'aimerais qu'ils soient ordonnés selon les dates (ex. ici j'aimerais qu'un cours ayant les dates '2015-05-13' et '2015-05-14' figure après celui figurant ci-dessus).

Si j'effectue la "requête" suivante, l'ordre ne fonctionne pas (il semble que les dates soient ordonnées au sein du cours directement et pas globalement) :

$courses = $this->Course->find('all', array(
    'conditions' => $conditions,
        'contain' => array(
            'Date' => array(
                'conditions' => $date,
                'order' => array('Date.date' => 'ASC')
            )
        )
));

Ma question est donc : Est-ce posible d'ordonner les cours de manière chronologique selon les dates qu'ils contiennent ?

En espérant avoir été clair, merci d'avance pour vos réponses,

kinkaz

NB : j'utilise la pagination de CakePHP donc mon ordre doit à priori fait à la manière du find('all') classique

Aucune réponse