刀片指令不起作用

时间:2018-03-19 12:51:50

标签: laravel laravel-5 blade laravel-blade

我正在使用Laravel 5.6并尝试定义刀片指令(在服务提供商的boot()方法中):

Blade::directive('hello', function () {
        return "Hello, World!";
});

但在我看来,当我写@hello时,它会显示@hello而不是“hello world”。

我已经完成了artisan view:clear(以及cache:clear),但仍然没有结果。

4 个答案:

答案 0 :(得分:0)

我相信你还需要打电话。未经测试,但请尝试:

<div>
    @hello()
</div>

答案 1 :(得分:0)

我使用Laravel 5.5,它适用于我。

AppServiceProvider.php 文件中的 boot()功能。

public function boot()
    {
        \Blade::directive('hello', function ($expression) {
            return "<?php echo 'Hello ' . {$expression}; ?>";
        });
    }

内部视图

@hello('Unai')

结果

Hello Unai

答案 2 :(得分:0)

您的表情还可以,视图上的@hello也可以。

您在使用Illuminate\Support\Facades\Blade吗?

答案 3 :(得分:0)

您必须执行以下操作

包括这一行

use App\TraitsFolder\BladeDirectives;
use Illuminate\Support\Facades\Blade;

并在您的 AppServiceProvider 类中添加此

使用 BladeDirectives;

如果您的 Laravel 服务器正在运行,请停止它并执行以下操作

php artisan cache:clear
php artisan config:clear
php artisan view:clear

然后再次启动服务器。