Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Ma question est toute bête mais je suis newbie en ZF et j'ai tenté pas mal de trucs qui marchent pas.
Je veux tout simplement faire un fetchall mais avec un left join dans la requete.
Je suis partie de l'exemple du module Album de la doc.
Mon code dans VideoTable.php :
[lang=php] use Zend\Db\TableGateway\AbstractTableGateway; use Zend\Db\Adapter\Adapter; use Zend\Db\ResultSet\ResultSet; use Zend\Db\Sql\Select; class VideoTable extends AbstractTableGateway [...] public function fetchAll() { $resultSet = $this->select(); /* j'ai tenté entre autre : $resultSet = $this->select(function ($select) { $select->join(array('a' => 'archiv_artists'), $table.'.id = archiv_artists.id', array('videos'), 'left'); });*/ return $resultSet; }
J'ai essayé aussi
[lang=php] $select = $this->tableGateway->getSql()->select() ->join(array('a' => 'archiv_artists'), $table.'.id=a.id',array('viewfieldname'=>'joinfieldname'));
Dernière modification par Footeuz (31-07-2015 17:17:53)
Hors ligne
Bonjour, bienvenue sur le forum.
Je pense que tu as posté dans la mauvaise section du forum, je laisserai le soin a un administrateur de déplacer le sujet dans la bonne section (tu utilise Zf2 si je ne me trompe pas, or tu as posté dans le forum consacré a zf1).
D'autre part, pour plus de lisibilité, pense a utiliser les balise code et lang dans la rédaction de ton message tu pourras ainsi mieux de faire comprendre quand tu colle du code avec la colorisation
Ensuite pour ton soucis, je connais très mal tablegateway (utilisateur de doctrine) Mais j'ai cherché un peu sur stack et j'ai trouvé ces liens
http://stackoverflow.com/questions/1481 … blegateway
http://stackoverflow.com/questions/1435 … 6#14371056
Une piste déjà pour démarrer. Ensuite pour mieux t'aider pourrait tu nous donner le SQL que ton code génère ?
Hors ligne
Voilà c'est déplacé !
Sinon, d'un point de vue donnée tout ce qui est dans un tablegateway ne te renverras que la tablerow, jamais un objet plus complet, donc tu peux faire une jointure mais pas pour récupérer les données des autres tables, juste pour mettre des conditions complexes.
De manière générale, j'aurais tendance à utiliser la méthode selectWith plutôt que select, avec un objet Sql complexe dedans.
Hors ligne