Bonjour,

Je cherche a rajouter une clause where dans mon get($id) dans le controller. Mon action doit me redonner les données de facturation pour une année en particulier (where session_id= xxx)
Voila ce que je fais puisque il est noté dans la doc qu'on peut appeler les meme options que dans le find()

    public function facture($id = null, $id_session = 1)
    {
        $foyer = $this->Foyers->get($id, [
            'contain' => ['Villes', 
                           'Adherents' , 
                           'Adherents.Inscriptions' => [ 'sort' => ['Inscriptions.prix' => 'DESC'],
                                                     'where' => ['Inscriptions.session_id' => '3']
                                                  ],                         
                                ]
                  ]);

Cakephp me dit qu'il y a un pb avec le where
Savez vous comment faire pour ajouter un where correctement sur une methode get() ?

Merci

1 réponse


Slt, tu es sur quelle version de Cake ?
sinon pour la 3,

$query = $articles->find()->contain([
    'Comments' => function ($q) {
       return $q
            ->select(['body', 'author_id'])
            ->where(['Comments.approved' => true]);
    }
]);

http://book.cakephp.org/3.0/fr/orm/retrieving-data-and-resultsets.html#passer-des-conditions-a-contain