扩展Laravel的刀片:无法添加扩展

时间:2016-01-13 10:02:12

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

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

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

但该函数永远不会被触发且扩展无法正常工作(虽然我正在使用注册扩展名的ServiceProvider)。我试图将代码放在我的routes.php文件中,但这也没有做任何事情。我还检查了库中的BladeCompiler类,并且'compileExtensions'方法永远不会被触发(这似乎是注册自定义扩展的位置)。

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

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

1 个答案:

答案 0 :(得分: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