【问题标题】:Laravel 5 syntax error, unexpected 'extends' (T_EXTENDS)Laravel 5 语法错误,意外的“扩展”(T_EXTENDS)
【发布时间】:2015-08-18 08:15:46
【问题描述】:

这是我控制器中的代码:

class ArticlesController extends Controller {
    public function index()
    {
        $articles = Article::all();
        return view('articles.index',compact('articles'));
    }

}

我的 App.blade.php

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Title</title>
        <meta charset="UTF-8">
        <meta name=description content="">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <!-- Bootstrap CSS -->
        <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet" media="screen">
    </head>
    <body>
        <div class="container">
            @yield('content')
        </div>

        @yield('footer')
        <!-- jQuery -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
        <!-- Bootstrap JavaScript -->
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    </body>
</html>

还有 index.blade.php

<?php

@extends('app')

@section('content')
    <h1>Articles</h1>
@stop

这是我得到的错误:

FatalErrorException in 5f3efcdeb3d9812b22b5491d0cba9f22 line 3:
syntax error, unexpected 'extends' (T_EXTENDS)

请帮忙。


下面列出的解决方案。虽然这个问题很愚蠢,而且很容易解决——但通过谷歌搜索很难找到一个直接的答案。因此保留这个问题。

【问题讨论】:

  • 5f3efcdeb3d9812b22b5491d0cba9f22 是您的视图,当您运行您的应用程序时,刀片视图将转换为一个示例 php 临时文件,其中包含您使用普通 php 语言的视图。临时视图存储在:storage/framework/views/ 尝试打开5f3efcdeb3d9812b22b5491d0cba9f22 文件,看看发生了什么
  • 我有&lt;? @extends('layouts/default') ?&gt;,我只需要删除&lt;? ?&gt;
  • @VaelVictus 您需要删除“”。如果有“?>”,也将其删除。
  • 我就是这么说的。

标签: php laravel laravel-5


【解决方案1】:

.blade.php 文件中不需要&lt;?php ?&gt; 标签。删除它们就可以了。

(刀片语法不需要在 php 标签中。但是,您可以在标签中包含 PHP 代码。)

【讨论】:

    【解决方案2】:

    使用扩展名 .blade.php 保存的 laravel 刀片文件中不需要 &lt;?php ?&gt; 标签,laravel 模板引擎会自动从这些文件中解析刀片命令。

    但是如果你想在你的刀片文件中包含不属于刀片引擎命令的 php 代码,那么你将不得不使用&lt;?php ?&gt; 标签。

    【讨论】:

      【解决方案3】:

      我知道这有点老了,但显然错过了这个问题。

      在您的 index.blade.php 文件中,您缺少结束 php 标记“?>”。

      blade sytanx @extends、@section 等...应该在任何 php 代码块之外的 html 中。

      【讨论】:

        【解决方案4】:

        当您使用@extends 时,它必须是刀片文件中的第一段代码。

        @extends 之前的空格或空换行也会引发错误。

        【讨论】:

          猜你喜欢
          • 2020-09-10
          • 2016-02-09
          • 2016-03-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-13
          • 1970-01-01
          • 2016-04-18
          相关资源
          最近更新 更多