Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
j'ai un problème lors de l'affichage du résultat du requête de jointure avec zend 2 et la structure MVC; c-à-d j'ai dans la classe MonModule\Model\ArticleTable la fonction de jointure :
[lang=php] public function getTrackByArticleId($id) { $sql = new Sql($this->adapter); $select = $sql->select(); $select->from($this->table) ->join('article', 'produit.id_art = article.id'); $where = new Where(); $where->equalTo('id_art', $id) ; $select->where($where); //you can check your query by echo-ing : // echo $select->getSqlString(); $statement = $sql->prepareStatementForSqlObject($select); $result = $statement->execute(); return ViewModel($result); }
et lorsque je veut afficher le résultat dans la vue ne marche pas:
echo $this->escapeHtml($result->nom_produit);?>
s-v-p m'aider :roll:
Hors ligne
Bonjour,
Si j'ai bien compris ton post, tu es dans ta couche modèle, et tu retourne un objet ViewModel. Déjà c'est pas bien bon d'avoir un retour d'un objet de type "vue" dans son modèle, c'est plus du travail du contrôleur que de gérer cet aspect là. Je ne vois rien dans ta requête qui me semble anormal, à mon avis c'est plus de l'ordre que ta vue ne récupère pas le retour de ta requête.
Si tu peux nous coller ton action du contrôleur.
Que vaut, dans ta vue $result ?
Hors ligne
Hello, le problème vient du faire que tu renvois directement l'objet $result dans ta vue l'objet ViewModel prend en paramètre un tableau ... Et c'est accessoirement un objet ... Donc un new devant c'est mieux parce que là ... Donc déjà si tu fais :
[lang=php] return new ViewModel(['result' => $result]);
Tu pourrais au moins dans ta vue faire un $this->result->nom_produit si nom_produit existe évidemment ou $result->nom_produit bien que ça fasse la même chose utiliser $this devant c'est conseillé.
Bref t'aurais pu éviter cette faute si t'avais pris le temps de lire la documentation au lieu de venir demander qu'on te mâche le travail ...
Hors ligne
Pages: 1