Invalid argument supplied for foreach()

Par auguste.sacho, il y a 11 ans


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

Carouge10, il y a 11 ans

Bonjour,

Le ; après le endforeach ?

auguste.sacho, il y a 11 ans

Carouge10
toujours le meme probléme

Carouge10, il y a 11 ans

ajouter le s à $post dans le foreach ?

auguste.sacho, il y a 11 ans

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

Carouge10, il y a 11 ans

avant le foreach fait un :

<?php var_dump($posts); ?>

Autant pour moi, ma dernière instruction est fausse

auguste.sacho, il y a 11 ans

il m'a affiché bool(true)

Carouge10, il y a 11 ans

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

auguste.sacho, il y a 11 ans

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

Carouge10, il y a 11 ans

que vaut $posts ? Est-il bien rempli?

Lartak, il y a 11 ans

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

Muxabble, il y a 11 ans

Et si tu fais sa :

<?php foreach ($posts as $post): ?>
auguste.sacho, il y a 11 ans

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

Muxabble, il y a 11 ans

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