Laravel Livewire 内联组件 return 语法错误

Laravel Livewire inline component return syntax error

我正在使用 Laravel 7

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

php artisan livewire:make HelloWorld3 --inline

它returns我语法错误

ErrorException syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) (View: /var/www/html/l7livewire/resources/views/welcome.blade.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;
    }
}

听起来您在 PHP 7.2 上是 运行 - 而此语法期望您在 PHP 7.3 上是 运行。

PHP 7.3 引入了 flexible heredoc syntax,其中可以缩进 heredoc 字符串的结束定界符(“blade;”)——在此之前,结束定界符不能完全缩进。

用于 PHP 7.2 的更正代码块如下:

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