laravel lame d'erreur - syntax error, unexpected
Je suis en utilisant Laravel 4 en local avec EasyPHP 14.1.
J'ai créé une route :
Route::get('/test', function()
{
return View::make('test');
});
une mise en page (testlayout.blade.php) :
<!doctype html>
<html>
<head>
<title></title>
</head>
<body>
<div class="container">
@yield('container')
</div>
</body>
</html>
et d'une vue (test.blade.php) :
@extends("testlayout")
@section('container')
<h1>Hello!</h1>
@stop
Il fonctionne très bien et j'obtiens un "Bonjour!"
Mais lorsqu'un changement de ma mise en page en ajoutant un include comme ceci :
<!doctype html>
<html>
<head>
<title></title>
</head>
<body>
<div class="container">
@yield('container')
</div>
@include('testfooter')
</body>
</html>
avec mon pied de page (testfooter.blade.php) :
@section("testfooter")
<div class="footer">2013-2014</div>
@show
J'ai une erreur "syntax error, unexpected '/'".
Le code généré par Laravel (qui se trouve dans app\stockage\vues) est faux :
<!doctype html>
<html>
<head>
<title></title>
</head>
<body>
<div class="container">
<?php echo $__env->yieldContent('container')
</div>
<?php echo $__env->make('testfooter', array_except(get_defined_vars(), array('__data', '__path')))->render(); ?>; ?>
</body>
</html>
Laravel oublie ;?>
après yieldContent('container')
et ajoute deux ;?>
après ... render()
.
J'ai essayé beaucoup de choses mais je n'ai pas vraiment d'idée maintenant.
UPDATE1
J'ai réinstallé une nouvelle Laravel et invité ce qui, le problème est toujours le même. Sans @include c'est ok, avec un @include j'ai la même erreur encore et encore.
UPDATE2 et PROBLÈME FIXE (merci à @majimboo)!
C'est tout simplement incroyable. Toute cette histoire n'est pas lié au code. C'est un problème avec l'éditeur de texte : Notepad++ sous Windows. Pour une raison inconnue, et pour certains fichiers seulement, il est passé de "modifier/EOL conversion/format windows" à "modifier/EOL conversion/format Mac'. Et apparemment, Laravel n'est pas Mac format à tous! Donc, si vous utilisez Notepad++ sous Windows, assurez-vous que vous avez : 'EOL conversion/format windows'
@include()
est de spécifier un fichier de vue, si vous ne semblent pas être en se référant à la section nulle part ailleurs.(en d'autres mots, s'il vous plaît essayez de retirer la @section()
enceinte à partir du fichier de pied de page(par exemple, laisser le contenu html))Même avec seulement HTML, j'ai la même erreur.
:/ Bon, j'ai voté cette question alors j'espère qu'il attirera l'attention dont il a besoin, parce que je n'ai plus d'idées de gauche.
Merci. C'est vraiment étrange. Si je supprime le @include, cela fonctionne, si je l'ai remis, j'ai la même erreur.
J'ai ajouté une réponse. Voir daylerees.com/codebright/blade pour en savoir plus. Recherche pour
include
.OriginalL'auteur Peter Estiven | 2014-04-17
Vous devez vous connecter pour publier un commentaire.
le problème est dans le fichier qui est inclus.
D'abord pour vérifier si le problème est vraiment que, enlevez tout à l'intérieur
testfooter.blade.php
puis ouvrez la vue depuis le navigateur. Vous remarquerez qu'il n'y a pas d'erreur plus.Changer votre
testfooter.blade.php
:supprimer la
@section("testfooter")
...@show
.Exemple:
De l'inclure comme:
Vérifier cette pour en savoir plus sur la lame.
Le problème semble être quelque chose d'autre, je voudrais juste partager cela, Si ça peut t'aider:
<div class="footer">2013-2014</div>
seulement et avec rien danstestfooter.blade.php
mais le problème est toujours là. J'ai effacé mon navigateur cache et supprimé les fichiers dansstorage/views
.ce code ne Laravel générer maintenant? At-il changé?
Votre exemple fonctionne. J'ai ajouté
@yield('container')
et utilisé votre code pour la mise en page et appelé@extends("example")
@section('container')
<h1>Hello!</h1>
@stop
et ÇA marche!!! Incroyable! Je ne comprends vraiment pas pourquoi le code précédent ne fonctionne pas.J'ai ajouté quelques notes de bas de page, peut aider. Désolé si je ne pouvais pas l'aider.
Mais si elle ne l'aider, j'apprécierais aussi si vous l'accepter comme une réponse 🙂 bonne journée.
OriginalL'auteur majidarif
Vous avez ceci:
Changer à cela:
Salut. J'ai fait le changement, supprimé les fichiers dans "app\stockage\views" et essayé de nouveau, mais, malheureusement, la même erreur est toujours là.
Effacez le cache du navigateur.
Il l'a fait. Aucune amélioration...
OriginalL'auteur The Alpha
Généralement Laravel qui donne une indication sur le problème. Le problème est peut-être dans votre CSS ou JS inclure des énoncés. Assurez-vous d'abord vous devez activer le mode de débogage de laravel. Voici comment le faire.
J'ai volontairement laisser de fermeture") ' du fichier css. Le laravel FW a montré où cette erreur, et il vous montrera une erreur semblable.
Espère que ça aide.
OriginalL'auteur Haroon Ali Shah
Dans mon cas, le problème est indéterminé chaîne dans du PHP dans une toute autre partie du fichier que Laravel a été se plaindre. J'ai éliminé par la suppression de tous les éléments dans le fichier et en ajoutant les lignes à nouveau un par un.
OriginalL'auteur Tash Pemhiwa