![](/img/trans.png)
[英]error in blade template syntax error, unexpected '}' - laravel 5
[英]laravel blade include error - syntax error, unexpected
我在本地使用Laravel 4和EasyPHP 14.1。 我创建了一条路线:
Route::get('/test', function()
{
return View::make('test');
});
布局(testlayout.blade.php):
<!doctype html>
<html>
<head>
<title></title>
</head>
<body>
<div class="container">
@yield('container')
</div>
</body>
</html>
和一个视图(test.blade.php):
@extends("testlayout")
@section('container')
<h1>Hello!</h1>
@stop
它工作正常,我得到“你好!”
但是当通过添加这样的包含来改变我的布局时:
<!doctype html>
<html>
<head>
<title></title>
</head>
<body>
<div class="container">
@yield('container')
</div>
@include('testfooter')
</body>
</html>
用我的页脚(testfooter.blade.php):
@section("testfooter")
<div class="footer">2013-2014</div>
@show
我有一个错误“语法错误,意外'/'”。
Laravel生成的代码(在app \\ storage \\ views中找到)是错误的:
<!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忘记;?>
在yieldContent('container')
添加两个;?>
在... render()
之后... render()
。 我尝试了很多东西,但我现在真的没有任何线索。
UPDATE1我重新安装了一个新鲜的Laravel和客人什么,问题仍然是一样的。 如果没有@include就可以了,使用@include我会一次又一次地出现同样的错误。
UPDATE2和PROBLEM FIXED (感谢@majimboo)! 这简直令人难以置信。 所有这些故事都与代码无关。 这是文本编辑器的问题:Windows上的Notepad ++ 。 由于未知原因,仅针对某些文件,它从“编辑/ EOL转换/ Windows格式”切换为“编辑/ EOL转换/ Mac格式”。 显然,Laravel根本不是Mac格式! 因此,如果您在Windows上使用Notepad ++,请确保您具有:' EOL转换/ Windows格式 '
问题出在包含的文件中。
首先检查问题是否真的如此,删除testfooter.blade.php
中的所有内容,然后从浏览器打开视图。 你会发现没有错误了。
将testfooter.blade.php
更改为:
<div class="footer">2013-2014</div>
删除@section("testfooter")
... @show
。
例:
<!-- app/views/header.blade.php -->
<h1>When does the Narwhal bacon?</h1>
<!-- app/views/footer.blade.php -->
<small>Information provided based on research as of 3rd May '13.</small>
你包括它:
<!-- app/views/example.blade.php -->
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Narwhals</title>
</head>
<body>
@include('header')
<p>Why, the Narhwal surely bacons at midnight, my good sir!</p>
@include('footer')
</body>
</html>
检查此以了解有关刀片的更多信息。
问题似乎是别的,我只想分享一下,如果它可以帮助你:
我使用Notepad ++作为文本编辑器,由于一些奇怪的原因,它决定使用“MAC格式”作为行尾(EOL)格式。 显然Blade框架无法应对。 使用转换功能(在记事本++:编辑 - > EOL转换中)转换为Windows格式,它将正常工作...
你有这个:
@section("testfooter")
<div class="footer">2013-2014</div>
@show // <--
把它改成这个:
@section("testfooter")
<div class="footer">2013-2014</div>
@stop // <--
通常Laravel对这个问题给出了很好的暗示。 问题可能出在CSS或JS include语句中。 首先确保您已打开laravel的调试模式。 这是怎么做的。
我故意遗漏了关闭')'的css文件。 laravel FW显示了该错误的位置,它会显示类似的错误。
希望它有所帮助。
在我的情况下,问题是一些PHP中的未终止字符串,与Laravel抱怨的文件完全不同。 我通过删除文件中的所有内容并逐个添加行来消除它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.