Salut,
J'ai fait une relation hasMany à mon model credit et un belongsTo dans mon model credit
Model user

public $hasMany = array('Credit');

Model Credit

public $belongsTo = array('User');

Dabs mon controller usersController :

public function profil($id){
        $user = $this->User->find('first',array(
            'conditions' => array('id'=>$id,'active'=>1),
            'contain' => array('Credit')
        ));
        $this->set(compact('user','credit'));
    }

Je fait un débug ça me donne ça

array(
    'User' => array(
        'password' => ' *****',
        'id' => '1',
        'username' => 'musicalitymaker',
        'mail' => 'm.a.l.musique@gmail.com',
        'active' => '1',
        'token' => '',
        'role' => 'member',
        'created' => '2013-05-29 00:00:00'
    ),
    'Credit' => array(
        (int) 0 => array(
            'id' => '1',
            'user_id' => '1',
            'point' => '20'
        )
    )
)

<?= $credits'Credit']'point']; ?>

Le message d'erreur est qui ne reconnait pas la variable credits

Je veux afficher dans ma vue Profil.ctp le champ Points. Je ne sais pas comment pour récupéré le nom de point.

Merci de votre aide.

1 réponse


philieric
Réponse acceptée

il est normal qu'il ne reconnait pas la variable $credit puisqu'elle n'existe pas.
Comme tu as fait une relation entre user et credit, de plus dans ton controller, tu y fait une recherche avec un contain : "credit", pour afficher les données de crédit, dans ta vue tu dois écrire :

<?= $user'Credit'][0]'point']; ?>

Bien entendu il faudrait faire un foreach($user'credit'] as $k=>$v) {....}