Ordonner selon un modèle associé sur un "contain"

Par kinkaz, il y a 11 ans


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