首页 > 解决方案 > Laravel Livewire 内联组件返回语法错误

问题描述

我正在使用 Laravel 7

当我使用此命令创建内联组件时,

php artisan livewire:make HelloWorld3 --inline

它返回给我一个语法错误

ErrorException 语法错误,文件意外结束,预期变量 (T_VARIABLE) 或 heredoc 结束 (T_END_HEREDOC) 或 ${ (T_DOLLAR_OPEN_CURLY_BRACES) 或 {$ (T_CURLY_OPEN)(查看:/var/www/html/l7livewire/resources/views/welcome.刀片.php)

我的 HelloWorld3.php 代码位于 ap/http/livewire/

<?php

namespace App\Http\Livewire;

use Livewire\Component;

class HelloWorld3 extends Component
{
    public function render()
    {
        return <<<'blade'
            <div>
                {{-- Be like water. --}}
            </div>
        blade;
    }
}

标签: laravelheredoclaravel-livewire

解决方案


听起来您在 PHP 7.2 上运行 - 而此语法要求您在 PHP 7.3 上运行。

PHP 7.3 引入了灵活的heredoc 语法,可以缩进heredoc 字符串的结束定界符(“ blade;”)——在此之前,结束定界符根本不能缩进。

您在 PHP 7.2 上工作的更正代码块如下所示:

class HelloWorld3 extends Component
{
    public function render()
    {
        return <<<'blade'
            <div>
                {{-- Be like water. --}}
            </div>
blade;
    }
}

推荐阅读