Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
bon voilà, ca fait quelques maintenant 2 bonnes heures que je cherche à comprendre pourquoi j'ai un warning lors d'un foreach, me connaissant c'est probablement une 'bête' erreur ... :
erreur :
Warning: Invalid argument supplied for foreach() in /var/www/application/views/scripts/index/index.phtml on line 29
j'ai une page dans lequel je souhaite afficher le contenu les informations d'un article (on se trouve dans un autre foreach qui parcourt les 5 derniers articles créé)
... (les informations d'un article) //ligne 29 foreach ($this->getSectionsFromArticleArray as $section) : echo $this->url(array('controller' => 'section', 'action' => 'view', 'idArticle' => $article->idArticle), 'default', true); echo $section['idArticle'] . '<br/> '; endforeach; endforeach; (celui de l'article)
ensuite, je vais rechercher dans mon controller où j'ai déclaré le array
public function indexAction() { $params = $this->getRequest()->getParams(); $idArticle = $params['idArticle']; $section = new Default_Model_Section(); $this->view->getSectionsFromArticleArray = $section->getSectionsFromArticle($idArticle); }
et pour preuve que la fonction getSectionsFromArticle($idArticle) existe
public function getSectionsFromArticle($idArticle) { return $this->getMapper()->getSectionsFromArticle($idArticle); }
voilà si quelqu'un pouvait m'éclairer
et pour éclairer, cela provient surement du fait que la variable se trouvant dans le foreach n'est pas un tableau mais pourquoi alors que je le déclare (il me semble) correctement
merci
Dernière modification par cedricn (12-01-2011 09:48:53)
Hors ligne
Malgrès son nom ton "$this->getSectionsFromArticleArray" ne contient surement pas un tableau. Fait un "var_dump($this->getSectionsFromArticleArray)", ou toute autre opération de débogage équivalente, juste avant ton foreach pour voir ce qu'il contient.
Hors ligne
prob résolu, vous pouvez clore, c'était juste la déclaration du array qui n'était pas mise dans le bon controller, ce qui fait qu'évidemment il ne le retrouvait pas
Hors ligne