PHP CodeIgniter - Invalid argument supplied for foreach()
J'essaie d'écrire un site avec CodeIgniter, mais j'ai un problème avec PHP. Je suis sûr que c'est si simple et ne peut pas être mauvais. Mais je ne sais pas les bugs de la , un novice de CodeIgniter 🙂
<html>
<head>
<title><?=$page_title?></title>
</head>
<body>
<?php foreach($result as $row):?>
<h3><? echo $row->title; ?></h3>
<p><? echo $row->text; ?></p>
<?php endforeach;?>
</body>
</html>
J'ai un bug à partir de ce fichier :
Une Erreur PHP a été rencontrée
Gravité: Avertissement
Message: Invalid argument supplied for
foreach()Nom de fichier: views/helloworld_view.php
Numéro De Ligne: 6
merci d'avance pour la lecture de ceci 🙂
Vous devez vous connecter pour publier un commentaire.
La variable que vous fournissez à la boucle foreach doit être un tableau. Vous pouvez ignorer le foreach si la valeur de la variable fournie n'est pas un tableau avec la solution ci-dessous.
Essayer
foreach($result->result() as $row)
- c'est peut-être que vous essayez de parcourir l'objet renvoyé par Codeigniter de l'enregistrement actif.Si vous vous demandez ce que pourrait être dans la variable de sortie!
Qui va instantanément vous dire ce qui se passe. Ma proposition, vous avez retourné FALSE quelque part à partir de votre modèle, ou vous êtes à l'aide de la DB objet et non pas le résultat (le) ou result_array() (comme suggéré par Alex).
$résultat n'est pas le tableau.
Essayer de le vérifier avec
is_array
avantforeach
.Et de débogage pourquoi $résultat n'est pas le tableau 😛
Vous pouvez utiliser le vide fonction php et faire quelque chose comme
Si vous utilisez le tutoriel :
http://net.tutsplus.com/tutorials/php/codeigniter-basics/
Puis c'est la ligne 5 de la helloworld_model.php il doit être:
pas
Tout d'abord, vous devez vous assurer que le tableau de données que vous transmettez à votre vue est en effet appelé
$data['result']
.Dans le contrôleur de la page, il devrait ressembler à quelque chose comme:
Dans la page de vue, il devrait être
Vous avez besoin de définir $data['result'] contrôleur
Mec, Cette erreur "Invalid argument supplied for foreach()" pour la plupart se produire. Lorsque vous êtes de passage le tableau associatif foreach est null. Vérifiez soigneusement votre tableau associatif à l'aide de l'écho de la déclaration. Ne pas passer la valeur null tableau associatif à boucle foreach.
Données de votre est
db->result_array
ou queresutl()
objet peut-être$result
est la matrice deVotre
$result['text'];
en Vuesi pas.
$result
est la matrice de l'objet que vous devez essayerprint_r
ouvar_dump $result
dans le contrôleurCela peut aider