salut,
J’ai un problème que je n’arrive pas à résoudre.
J’ai 2 tables :
tbl_prono : qui contient 2 rangées
tbl_game : qui contient 3 rangées.
Dans la table tbl_prono j’ai une FK (game_id) qui pointe vers tbl_game.
J’ai bien fait la relation dans le model Prono:
return array(
'game'=>array(self::BELONGS_TO, 'Game', 'game_id'),
);
Tout marche super, j’arrive à bien afficher dans la vue.
MAIS ! Lorsque je fait dans mon controller pour une certaine action:
$dataProvider=new CActiveDataProvider('Prono', array(
'criteria'=>array(
'with'=>array('game'=>array('joinType'=>'RIGHT JOIN')),
)));
$this->render('pronos',array('dataProvider'=>$dataProvider,));
Il ne m’affiche pas toutes les rangées. Ils devraient m’en afficher 3, mais il en affiche que 2.
Quand je copie/colle la requête dans phpmyadmin, ca me retourne bien 3 rangées.
En fait, le problème je pense que ca vient de la requête suivante générée par system.db.CDbCommand :
SELECT COUNT(DISTINCT `t`.`id`) FROM `tbl_prono` `t` RIGHT
JOIN `tbl_game` `game` ON (`t`.`game_id`=`game`.`id`)
Cette requête me retourne que 2! Pour que cette requête me retourne 3, ca devrait être "SELECT COUNT(*) …"
Cette requête me retourne que 2 car j’ai juste 2 éléments dans tbl_prono. Mais j’ai bien 3 éléments dans tbl_game.
Comme je fait un "RIGHT JOIN" je devrais bel et bien avoir 3 rangées.
Est-ce que quelqu’un aurait une idée pour que je puisse afficher mes 3 colonnes ?
merci