Requete avec jointure

Par jey1985, il y a 9 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

J'ai une table User et une table Compromis, un compromis peut appartenir à plusieurs user et un user peut appartenir à plusieurs compromis.
J'ai donc une table intermédiaire "CompromisUsers".

Lorsque je récupère un utilisateur il me remonte automatiquement tous ses compromis, grace à la table CompromiUser.
Jusque là OK.

Moi ce que je veux faire, cest trouver pour chaque compromis , quel utilisateur est le "créateur"

Imaginons je creer un compromis : "TOTO" et les utilisateurs "xxx", "yyy" et "zzz" y sont rattachés et c'est "yyy" le créateur.

'Compromi' => array( 'id' => '42', 'created' => '2016-02-11 17:30:20', 'date_signature' => '05/02/2016', 'date_acte' => '05/05/2016', 'nom_vente' => 'TOTO, ), 'User' => array( (int) 0 => array( 'id' => '11', 'nom' => 'xxx', 'prenom' => 'Sandrine', 'CompromisUser' => array( 'id' => '1368', 'user_id' => '11', 'compromi_id' => '42', 'createur' => '0' ) ), (int) 1 => array( 'id' => '1', 'nom' => 'yyy', 'CompromisUser' => array( 'id' => '1367', 'user_id' => '1', 'compromi_id' => '42', 'createur' => '1', ), (int) 2 => array( 'id' => '15', 'nom' => 'zzz', 'CompromisUser' => array( 'id' => '1369', 'user_id' => '15', 'compromi_id' => '42', 'createur' => '0', )

Je n'arrive pas à trouver la requette pour récupérer directement pour un compromis id qui est le créateur ou encore mieux lorsque je demande tous les compromis d'un utilisateur,réussir à récupérer directement le créateur à ce moment la ...

merci par avance

1 réponse

Kareylo, il y a 9 ans

Tu vas devoir travailler sur la table CompromisUser, tout simplement,

Si tu es sous CakePHP3,

$compromi = $this->Compromis->CompromisUser->find('all', [ 'conditions' => ['CompromisUser.createur' => 1], 'contain' => ['User', 'Compromi'] ]);