【问题标题】:Laravel - syntax error, unexpected end of fileLaravel - 语法错误,文件意外结束
【发布时间】:2013-04-13 12:44:49
【问题描述】:

我有一个在主机上运行良好的网站,但我目前正在尝试将它安装在 localhost 上。

我已下载所有内容并配置为在 localhost - 数据库和 URL 上工作。

问题是这个错误:

未处理的异常

消息:

语法错误,文件位置意外结束:

C:\Program Files (x86)\EasyPHP-12.1\www\laravel\view.php(386) : eval()'d 代码在第 118 行

我不知道是什么原因造成的。有什么解决办法吗?

附:我已经在我的 Windows 主机文件中设置了127.0.0.1 myproject.dev

【问题讨论】:

    标签: php laravel laravel-blade


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这个问题的一个变体——我有一个 php 块,我用它打开 <? 而不是 <?php 在 LocalHost/MAMP 上运行良好,但在 Nginx/Ubuntu 16.04/PHP7(都是 Laravel)下出现上述错误

      【讨论】:

      • 这可能是由于您的 php.ini 配置中禁用了短标签。启用它们非常简单。
      【解决方案3】:

      我遇到了同样的错误,我可以通过在内联 if 语句的内容中添加空格来修复它。例如:

      遇到错误:

      @if( BLAH )Output@endif
      

      修正错误:

      @if( BLAH ) Output @endif
      

      这可能不是在所有情况下都是问题,而且肯定很难追查,但这只是可能导致此确切错误的一个示例。

      【讨论】:

      • 我也遇到了这个问题,这个解决了。这个问题似乎是因为我们升级到了 Laravel 4.2;旧代码在 Laravel 4.1 中运行良好。另请参阅this question
      【解决方案4】:

      您的其中一个视图存在错误。如果有更详细的堆栈跟踪,它应该向您显示视图的详细信息,尽管名称将是 md5() 字符串,因此有点难以找到。您可能希望删除 storage/views 中所有已编译的 Blade 视图,并让 Blade 重新编译视图。

      如果您仍然收到错误,请检查您的视图以确保您拥有所有正确的结束标签,例如 @endif@endforeach

      始终仔细检查您的视图是否有任何语法错误。

      【讨论】:

      • 我的短标签好像没有打开。 :( 到目前为止一切都很好。
      • 这样也行!您应该看看 Blade,而不是使用短标签。 :)
      • 我认为刀片是将@foreach($foo as $bar) 转换为<? foreach($foo as $bar): ?>。无论如何,我解决了这个问题。感谢您的回复。
      • 在我的情况下,它是路由文件中缺少的分号。很遗憾,错误消息甚至没有提到文件名!
      • @LuigiLopez 太久以前不记得今天了,但我猜,在路线定义的末尾。 . .
      猜你喜欢
      • 2016-03-07
      • 1970-01-01
      • 2011-09-16
      • 2017-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多