Bonjours,

j'ai un petit soucis avec les association de mes tables.
Dans le model Post (qui représente les news de mon site) :

public $belongsTo = array(
        'User'  => array(
            'className' => 'User',
            'foreignKey' => 'Post.user_id',
        ),
    );

Et dans mon controller :

$posts = $this->Post->find('all');
debug($posts);
die;

Mais pas la moindre trace de mon utilisateur, même en indiquant les champs à récupérer :

$posts = $this->Post->find('all', array('fields' => array('User.username')));

Merci par avance pour votre aide ! :)

2 réponses


ker0x
Réponse acceptée

Ajoute cette ligne dans tes model Post et User

public $actsAs = array('Containable');

et dans ton controller

$posts = $this->Post->find('all', array('contain' => array('User')));

Cela devrait fonctionner

jege
Auteur

Oh merci !

Par contre pour ceux qui ont eu le même problème, surtout ne pas mettre :

public $belongsTo = array(
    'User'  => array(
        'foreignKey' => 'Post.user_id',
    ),
);

mais :

public $belongsTo = array(
    'User'  => array(
        'foreignKey' => 'user_id',
    ),
);