Bonjour tous le monde,

Je suis un débutant avec cakephp je suis en cour de suivre la formation j 'ai une petite erreur j 'arrive pas a le résoudre Invalid argument supplied for foreach()
voici mon code: index.ctp
<?php foreach ($posts as $k => $post): ?>
<h1> <?= $post['Post']['name']; ?> </h1>
</p><?= $post['Post']['content']; ?></p>
<?php endforeach ?>
le code dans controller
function index(){
$posts = $this->Post->find('all');
$this->set(compact('posts'));
}
pourriez vous me dire d 'ou viens cet erreur svp

Merci d'avance

13 réponses


Bonjour,

Le ; après le endforeach ?

Carouge10
toujours le meme probléme

ajouter le s à $post dans le foreach ?

toujours le méme probléme , j'ai ajouté le s à $post

avant le foreach fait un :

<?php var_dump($posts); ?>

Autant pour moi, ma dernière instruction est fausse

il m'a affiché bool(true)

Il vous faut un tableau ou un objet pour faire un foreach donc il y a un problème dans le controller

voici le code du controller:
function index(){
$posts = $this->Post->find('all');
$this->set(compact('posts'));
}

que vaut $posts ? Est-il bien rempli?

Bonjour.
As-tu des enregistrements dans ta tables posts ?

Et si tu fais sa :

<?php foreach ($posts as $post): ?>

Merci les amis pour vos aides j 'ai résolu le probléme

quel est la solution pour aider peut etre d'autres personnes?