Laravel 4 Lame @include variable
J'ai essayé de faire include
avec Laravel de la lame, mais le problème est qu'il ne peut pas passer la variable. Voici mon code d'exemple:
file_include.blade.php
<?php
$myvar = "some text";
main.blade.php
@include('file_include')
{{$myvar}}
Quand je lance le fichier, il renvoie l'erreur "Undefined variable: myvar". Alors, comment puis-je passer une variable dans le fichier include pour le fichier principal?
Merci.
- est utilisé pour inclure des sous-vues , il ne devrait pas être utilisé pour charger des variables de cette façon. Rappelez-vous ce sont des lame de modèles et non l'ensemble des fichiers php.
Vous devez vous connecter pour publier un commentaire.
Pourquoi voudriez-vous passer de l'inclure à l'appel de modèle? Si vous en avez besoin dans l'appel du modèle, créez-la, puis la passer dans le modèle inclus comme ceci:
Ci-dessus extrait de code de http://laravel.com/docs/templates
Malheureusement Laravel Lame moteur ne prend pas en charge ce qui vous attend!.Mais un peu de façon traditionnelle, vous pouvez atteindre cet!
SOLUTION 1 - sans
Laravel Blade Engine
Étape un:
de
à
Étape b:
main.blade.php
SOLUTION 2 avec
Laravel Blade Engine
routes.php
Accès $data array de
Any View
comme ceSortie
Lame est un Moteur de Template pour Laravel. Donc, essayer de passer la valeur du contrôleur ou vous pouvez la définir dans le routes.php pour des fins de test.
@include permet d'inclure des sous-vues.
Je pense que vous devez comprendre la portée des variables dans Laravel Lame de modèle. Y compris un modèle à l'aide de
@include
héritera de toutes les variables de son parent de la vue(le point de vue où il a été défini). Mais je suppose que vous ne pouvez pas utiliser vos variables définies dans votre vue d'enfant à la portée parent. Si vous voulez que votre variable d'être à la disposition du parent essayez d'utiliserView::share($variableName, $variableValue)
il sera disponible à tous les points de vue comme prévu.Dans ce scénario
$myvar
serait disponible uniquement sur le marché local de la portée de l'appel.Pourquoi ne pas vous envoyer la variable directement à partir du contrôleur?
Je vous suggère de faire un classique PHP besoin si vous voulez vraiment changer votre variable (il est alors automatiquement par référence)