Salut,
J'aimerais récuperer des personnages qui appartienne à des users.
Seulement quand je fait une requete belongsTo (je n'arrive pas à la faire marché) ou simplement avec la première méthode:
$infos = $this->User->find('all',
array(
'conditions' =>
array(
"User.username = '$name'"
),
'fields' => '*',
'joins' => array(
array(
'table' => 'personnages',
'alias' => 'Personnage',
'type' => 'LEFT',
'conditions' => array('User.id = Personnage.idUser')
)
)
)
);
Résultat d'un debug($infos)
\app\View\Users\profil.ctp (line 11)
array(
(int) 0 => array(
'User' => array(
'id' => '1',
'username' => 'Noliax8',
),
'Personnage' => array(
'idSQL' => '1',
'idUser' => '1',
'Level' => '3',
)
),
(int) 1 => array(
'User' => array(
'id' => '1',
'username' => 'Noliax8',
),
'Personnage' => array(
'idSQL' => '20',
'idUser' => '1',
'Level' => '1',
)
)
)
Je trouve que ce n'est pas très pratique, pourquoi pas seulement:
\app\View\Users\profil.ctp (line 11)
array(
'User' => array(
'id' => '1',
'username' => 'Noliax8',
),
'Personnage' => array(
0 => array(
'idSQL' => '1',
'idUser' => '1',
'Level' => '3',
),
1 => array(
'idSQL' => '20',
'idUser' => '1',
'Level' => '1',
)
)
)
C'est normal ? C'est la bonne relation ? Comment faire cette même relation avec belongsTo ? Je n'y arrive pas, j'ai aucun résultat
Tables: users, personnages
Merci d'avance
Il faut que dans ton model User tu définisses une liaison de type hasMany
public $hasMany = array(
'Personnage' => array(
'className' => 'Personnage',
'foreignKey' => 'user_id'));
Et tu joins les model dans ta requête avec un contain :
$infos = $this->User->find('all', array(
'conditions' => array(...),
'contain' => array('Personnage'));