Comment passer des données à afficher dans Laravel?
Im la transmission des données à ma lame de vue avec return View::make('blog', $posts);
et dans ma lame, je suis en train de lancer un @foreach ($posts as $post)
je me retrouve avec un message d'erreur indiquant que $posts
n'est pas défini.
Ma question est comment le $posts
matrice être appelé?
return View::make('blog',compact('posts'));
- Pour être clair, le 2e paramètre doit être un tableau associatif:
array('posts' => $posts)
, ou vous pouvez utiliser lewith()
méthode comme indiqué dans la accepté de répondre. return view('blog',compact('posts'));
Vous devez vous connecter pour publier un commentaire.
Vous pouvez transmettre des données à la vue à l'aide de la
with
méthode.C'est probablement la peine de mentionner que comme de Laravel 5, le passage des données de la vue est maintenant fait comme ceci:
Ou:
De la Documentation est disponible ici.
Si vous voulez passer juste une variable de vue, vous pouvez utiliser
Dans Contrôleur
Dans vue
Si vous souhaitez passer plusieurs variables à afficher, vous pouvez utiliser
Dans Contrôleur
Dans vue
Vous pouvez également passer un tableau en tant que second argument après le point de vue du nom de modèle, au lieu de cordage ensemble un groupe de
->with()
méthodes.Ou, si vous utilisez PHP 5.4 ou mieux, vous pouvez utiliser le beaucoup plus agréable "courte" de la syntaxe de tableau:
Ceci est utile si vous voulez calculer la matrice d'ailleurs. Par exemple, si vous avez un tas de variables que chaque contrôleur doit passer à la vue, et que vous souhaitez combiner cela avec un tableau de variables qui est unique à chaque contrôleur spécifique (à l'aide de
array_merge
, par exemple), vous pouvez calculer$variables
(qui contient un tableau!):(Je l'ai fait sur le dessus de ma tête: laissez-moi savoir si une erreur de syntaxe glissé...)
array('posts' => $posts)
je n'ai jamais vu ce genre de Tableau, est-ce un Tableau anonyme??? où est son nom ?? Tout ce que je sais, c'est que ce tableau a valeur de la clé de paireVoici un exemple:
Tips1:
Tips2:
Tips3:
contrôleur:
index:
Espérons que cette aide! 🙂
Vous pouvez aussi faire comme ceci
Et que l'accès à cette variable à afficher comme
$var1
,$var2
,$var3
Vous pouvez aussi faire la même chose d'une autre manière,
Si vous utilisez PHP 5.5 ou plus récent, alors vous pouvez le faire comme suit,
Contrôleur:
Vue:
Même façon, vous pouvez accéder à toutes les variables que vous avez passé dans le modèle compact de la fonction.
Espère que cela aide 🙂
Vous pouvez transmettre les données à l'affichage à l'aide de la méthode.
Vous pouvez également écrire pour transmettre des données multiples à partir de votre contrôleur de vue
Par exemple, vous avez un tableau avec vos données.
À partir de votre contrôleur, vous pouvez passer cette variable à l'aide de compact. Vous pouvez passer autant de tableau que vous le souhaitez.
Ici de données est un dossier en vue de l'indice est le fichier avec l'extension index.blade.php
En vue, vous pouvez appeler les tableaux comme ce
Vous pouvez utiliser les méthodes suivantes pour transmettre les données à afficher dans Laravel:
Pour tout en pensant que c'est vraiment pénible dans le cas où vous avez des tonnes de variables à passer à une vue ou vous voulez les variables pour être accessibles à de nombreux points de vue à la même, ici est une autre façon
Dans le contrôleur, vous devez définir les variables que vous souhaitez passer comme
global
et vous attribuer des valeurs à ces variables.Exemple
global $variable; $variable = 1;
Et maintenant dans la vue, en haut, il suffit de faire
<?php global $variable;?>
Alors vous pouvez maintenant appeler votre variable à partir de n'importe où dans la vue par exemple
espère que cela aide quelqu'un.