je m'explique j'ai une table user et une table ami tous les amis son forcément de user.
comment je peux faire pour que ma table ami se comporte comme une table intermédiaire en aillent qu'une table user ?

4 réponses


boolgy
Auteur
Réponse acceptée

ok j'ai trouvé la solution était

public $hasAndBelongsToMany = array(
                        'Visioneur' => array(
                                'className' => 'Profil',
                                'joinTable' => 'profilvisiblepars',
                                'foreignKey' => 'profil_id',
                                'associationForeignKey' => 'visioneur_id',
                                'unique' => 'keepExisting',
                                'conditions' => '',
                                'fields' => '',
                                'order' => '',
                                'limit' => '',
                                'offset' => '',
                                'finderQuery' => '',
                        ),
                )

merci matt75 de m'avoir mit se le bon rail

boolgy
Auteur

merci sa devrai le faire je teste sa tous e suite

ps: je m'était pas rendu compte que grafikart était si fréquenté et si réactif

boolgy
Auteur

bon ok je pence qu'on est sur la bonne piste mais...
je peux pas être très précis mais j'ai une table profil possèdent évidement un id.
une table nome (façon conventionnel je sais) profilvisiblpars

un profil peux être vus par plusieurs autre profil listé dans la table 'intermédiaire' profilvisiblepars

dans mon model profil j'ai

public $hasMany = array(
                        'Visible' => array(
                                'className' => 'Profilvisiblpar',
                                'foreignKey' => 'visioneur_id',
                                'dependent' => false,
                                'conditions' => '',
                                'fields' => '',
                                'order' => '',
                                'limit' => '',
                                'offset' => '',
                                'exclusive' => '',
                                'finderQuery' => '',
                                'counterQuery' => ''
                        ),
                        'Visioneur' => array(
                                'className' => 'Profilvisiblpar',
                                'foreignKey' => 'profil_id',
                                'dependent' => false,
                                'conditions' => '',
                                'fields' => '',
                                'order' => '',
                                'limit' => '',
                                'offset' => '',
                                'exclusive' => '',
                                'finderQuery' => '',
                                'counterQuery' => ''
                        ),
                    )

et dans le model profilvisiblepars

public $belongsTo = array(
        'Profil' => array(
            'className' => 'Profil',
            'foreignKey' => 'profil_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
        ),
                'Visioneur'=> array(
                        'className' => 'Profil',
            'foreignKey' => 'visioneur_id',
            'conditions' => '',
            'fields' => '',
            'order' => ''
                )
    );

et depuis le controleur profil (au moment d'enregistré le profil) comme suite

$this->Profil->saveAssociated($this->request->data)
//exrait du tableau data
    'Visioneur' => array(
        'Visioneur' => array(
            (int) 0 => '1',
            (int) 1 => '31',
            (int) 2 => '30'
        )
    ),

le problème est simple il enregistre que l'id du profil qu'il vient de créé dans profilvisiblepars
et 0 a la place de l'id du profil du visioneur_id

vous auriez pas d'idée sur la cause ?