Bonjour,

Je souahite faire un tri sur un champ d'un model qui n'est pas celui de base dans ce controller.
Je cherche a obtenir un tri sur les Nom de famille des Foyers qui sont dans une ville donnée.
Il y a un champ ville_id dans le modèle Foyers pour créé la relation.
Je ne vois pas ce que je peux faire différemment pour obtenir ce que je veux !??

Ce que je fais

public function view($id = null)
    {
        $ville = $this->Villes->get($id, [
            'contain' => ['Foyers'],
            'order' => [
                'Foyers.name' => 'asc',                
            ]
        ]);

        $this->set('ville', $ville);
        $this->set('_serialize', ['ville']);
    }

Ce que j'obtiens

Si j'execute l'action alors cakephp me dit qu'il ne connait pas foyers.name !
Il existe bien pourtant en base de données

Foyers

id                   
name                 
adresse                      
ville_id                  (villes -> id )        
created              
modified                 

Une piste sur l'origine du pb et surtout de ce que je n'ai pas encore bien compris peut etre ?
Merci

1 réponse


alexyon
Réponse acceptée

Slt,
voici le code du cookbook, ca devrait t'aider.

$query->contain([
    'Comments' => [
        'sort' => ['Comment.created' => 'DESC']
    ]
]);

http://book.cakephp.org/3.0/fr/orm/retrieving-data-and-resultsets.html#ordonner-les-associations-contain