Laravel @foreach - invalid argument fourni
Je suis très nouveau à Laravel et PHP, juste essayer de lister tous les utilisateurs de mon point de vue de fichier comme ceci:
@foreach ($users as $user)
<li>{{ link_to("/users/{$user->username}", $user->username) }}</li>
@endforeach
Mais une erreur qui dit " Invalid argument supplied for foreach()'
Dans mon contrôleur, j'ai la fonction suivante:
public function users() {
$user = User::all();
return View::make('users.index', ['users' => '$users']);
}
Ce que je fais mal?
OriginalL'auteur Adnan Khan | 2014-03-14
Vous devez vous connecter pour publier un commentaire.
$users
n'est pas défini dans votre contrôleur, mais$user
est. Vous essayez de@foreach
sur une variable qui, littéralement, est égale à la chaîne de'$users'
. Modification::
Et supprimer les guillemets simples autour de
$users
:np, content d'avoir pu aider
Jeff c'est vraiment utile
OriginalL'auteur Jeff Lambert
La réponse ci-dessus est correcte, mais depuis d'autres peuvent avoir le même message d'erreur (ce qui en gros signifie que la variable que vous avez fourni pour foreach n'est pas un tableau) dans un autre contexte, permettez-moi de vous donner ce que l'autre cause:
Lorsque vous avez un éloquent de la relation (probablement un hasMany) qui a le même nom qu'un fieldin que éloquent modèle, et vous souhaitez faire une boucle à travers les éléments de la relation à l'aide d'un foreach. Vous pensez que vous êtes en boucle à travers la relation encore Laravel est le traitement le terrain comme ayant une priorité plus élevée que la relation. La Solution est de renommer vos relations (ou d'un champ, quel que soit le cas).
OriginalL'auteur gthuo