2013-04-20 96 views
11

我有一个能在主机上正常工作的网站,但我目前正在尝试将它安装在本地主机上。Laravel - 语法错误,文件意外结束

我已经下载了所有内容,并已配置为在本地主机上工作 - 数据库& URL。

问题是这样的错误:

Unhandled Exception

Message:

syntax error, unexpected end of file Location:

C:\Program Files (x86)\EasyPHP-12.1\www\laravel\view.php(386) : eval()'d code on line 118

而且我不知道是什么原因造成的。任何解决方案

P.S.我已经安装在我的Windows主机文件127.0.0.1 myproject.dev中。

回答

19

您的某个视图中有错误。如果有更详细的堆栈跟踪,它应该会显示一个视图的详细信息,但名称将是一个md5()字符串,因此有点难以找到。您可能想要删除storage/views中的所有已编译刀片视图,然后让刀片重新编译视图。

如果仍然出现则错误校验你的意见,以确保您拥有所有正确的结束标记,例如@endif@endforeach

务必仔细检查您的观点对任何语法错误。

+2

它看起来像我没有打开我的短标签。 (到目前为止一切正常:) – 2013-04-20 03:45:29

+0

这样做也可以做到!而不是使用短标签,你应该看看Blade。:) – 2013-04-20 03:59:24

+0

我认为刀片是转换'@foreach($ foo as $ bar)'到' <? foreach($ foo as $ bar):?>'。反正我解决了这个问题。感谢您的答复。 – 2013-04-21 16:32:41

6

我遇到了这个相同的错误,我能够通过向内联if语句中的内容添加空格来修复它。例如:

经验的误差:

@if(BLAH)[email protected] 

修正误差:

@if(BLAH) Output @endif 

这可能不是在所有情况下的一个问题,它肯定是难以追查,但它仅仅是一个可能导致这个确切错误的例子。

+0

我也有这个问题,这解决了它。这个问题似乎发生了,因为我们升级到了Laravel 4.2;旧代码在Laravel 4.1中运行良好。另见[这个问题](http://stackoverflow.com/questions/24184925/unexpected-endforeach-in-blade-template/)。 – 2015-02-06 16:46:23

+0

它的工作!整蛊!谢谢你 – facundofarias 2015-11-04 14:55:32

1

这个问题的一个变化 - 我有一个PHP代码块,我想与 <?而不是<?php在localhost/MAMP工作正常打开,但在Nginx的/ Ubuntu的16.04/PHP7了上述错误(包括Laravel)

+0

这可能是由于你的'php.ini'配置中禁用了短标签。启用它们非常简单。 – 2016-08-17 13:31:54

0

你应该从视图文件中删除一个字符。例如我的角色在“@endfor”之前是“,”(逗号)。当我删除那些工作!