我在Laravel(5.0)项目中注册了一个Blade扩展程序:
Blade::extend(function($view, $compiler)
{
// my extension code
);
但该函数永远不会被触发且扩展无法正常工作(虽然我正在使用注册扩展名的ServiceProvider)。我试图将代码放在我的routes.php文件中,但这也没有做任何事情。我还检查了库中的BladeCompiler类,并且'compileExtensions'方法永远不会被触发(这似乎是注册自定义扩展的位置)。
我做错了吗?我是否必须注册我想扩展Blade的地方?
仅供参考:我在每次尝试之前都已经运行了'php artisan clear-compiled'(并清除了所有应用程序缓存),所以不是这样。
答案 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