【问题标题】:Extend Laravel's Blade: not able to add an extension扩展 Laravel 的刀片:无法添加扩展
【发布时间】:2016-04-18 05:53:54
【问题描述】:

我在我的 Laravel (5.0) 项目中注册了一个 Blade 扩展:

Blade::extend(function($view, $compiler)
{
    // my extension code
);

但是该函数从未被触发,并且扩展程序无法正常工作(尽管我用来注册扩展程序的 ServiceProvider 被触发了)。我试图将代码放在我的 routes.php 文件中,但这也无济于事。我还检查了库中的 BladeCompiler 类,'compileExtensions' 方法永远不会被触发(这似乎是注册自定义扩展的地方)。

我做错了吗?我是否必须在要扩展 Blade 的地方注册?

仅供参考:我已经在每次尝试之前运行了“php artisan clear-compiled”(并清除了所有应用程序缓存),所以不是这样。

【问题讨论】:

    标签: php laravel laravel-5 blade laravel-blade


    【解决方案1】:

    尝试使用 Blade::directive(),例如:

    Blade::directive('datetime', function($expression) {
      return "<?php echo with{$expression}->format('m/d/Y H:i'); ?>";
    });
    

    您可以在此处找到更多文档:https://laravel.com/docs/5.1/blade#extending-blade

    【讨论】:

    • 我认为指令方法是自 Laravel 5.1 以来添加的东西,我仍在使用 Laravel 5.0(并且在不久的将来无法升级)。我什至在 Laravel 5.0 文档中都找不到关于扩展 Blade 的任何内容,但是 extend 方法确实存在..
    • 你能用扩展代码更新你的代码吗?也许匹配器定义不正确
    猜你喜欢
    • 2014-06-13
    • 2020-05-20
    • 2015-09-19
    • 2019-11-03
    • 2014-09-19
    • 2018-08-11
    • 2016-01-25
    • 2016-05-16
    • 2016-09-14
    相关资源
    最近更新 更多