Bonjour,

je dois faire une relation a 3 tables :

Ads->hasOne('Automobiles')
Automobiles->belongsTo(['Brands','Carrosseries','Energies']

C'est possible d'avoir ce résultat ?

Ads => [
    (int) 0 => object(Cake\ORM\Entity) {
            'id' => (int) 1,
            'name' => 'test de ads',
            'automobile' => object(Cake\ORM\Entity) {
                    'id' => (int) 1,
                    'ad_id' => (int) 1,
                    'brand_id' => (int) 1 => object(Cake\ORM\Entity) {
                            'id' => (int) 1,
                            'name' => 'nom de la marque',
                    }
                    'carrosserie_id' => (int) 1 => object(Cake\ORM\Entity) {
                            'id' => (int) 1,
                            'name' => 'type de carrosserie',
                    }
            }
    }
]

Merci !!

2 réponses


Xeta
Réponse acceptée

Hey,

$ads = $this->Ads
    ->find()
    ->contain([
        'Automobiles',
        'Automobiles.Brands',
        'Automobiles.Energies',
        'Automobiles.Carrosseries',
    ])
    ->where([
        'Ads.id' => $id
    ]);
    ....

A toi de la modifier suivant se que tu cherche à faire. Le plus important étant bien sûr, le contain().

agencep
Auteur

merci et c'est ce que j'ai fais...