【问题标题】:Laravel 4 - extending blade, problems with command without bracketsLaravel 4 - 扩展刀片,没有括号的命令问题
【发布时间】:2014-07-03 17:27:59
【问题描述】:

我想在 laravel 4 中扩展刀片以具有一些自定义命令,并且我想在不带括号的情况下调用它们。比如我想打电话:

@test

所以我创建了 Blade::extend 函数,如下所示:

Blade::extend(function($view, $compiler)
{
    $pattern = $compiler->createMatcher('test');

    return preg_replace($pattern, '$1<?php echo "test"; ?>', $view);
});

当我调用它时它工作正常:

@test()

但是当我调用它时失败:

@test

我怎样才能做到这一点?

【问题讨论】:

    标签: php laravel laravel-4 blade


    【解决方案1】:

    事情是 preg_replace 模式。深入了解BladeCompiler,我发现它有不止一个createMatcher 方法。

    打电话

    @test
    

    不用括号,直接改

    $pattern = $compiler->createMatcher('test');
    

    到:

    $pattern = $compiler->createPlainMatcher('test');
    

    在这种情况下创建适当的模式。

    【讨论】:

      猜你喜欢
      • 2019-11-03
      • 1970-01-01
      • 2014-09-19
      • 2016-01-05
      • 2016-04-18
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多