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


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']
]);