在哪里放置Blade :: extend?
在哪里放置Blade :: extend?
我想在我的Laravel项目中添加以下代码来支持Blade中的break和continue语句。
代码如下:
Blade::extend(function($value) { return preg_replace('/(\s*)@(break|continue)(\s*)/', '$1$3', $value); });
然而我不知道应该将它放在哪里,希望能得到帮助。
admin 更改状态以发布 2023年5月21日
Laravel 5的替代方案
1)创建app/Providers/BladeServiceProvider.php
createOpenMatcher('datetime'); return preg_replace($pattern, '$1format(\'m/d/Y H:i\')); ?>', $view); }); /* @eval($var++) */ \Blade::extend(function($view) { return preg_replace('/\@eval\((.+)\)/', '', $view); }); } public function register() { // } }
2)在config/app.php
中添加
[ // ... 'App\Providers\BladeServiceProvider',
3)运行php artisan clear-compiled
4)在您的模板中使用@datetime($updated_at)
或@eval($var = 1)
,例如@eval($var++)
5)重要提醒
blade
模板会被缓存,请尝试在blade中进行虚拟更改,这样Laravel将重新编译模板 - sbedulin Feb 9 at 17:43
除sbedulin的Laravel 5解决方案之外
a)运行php artisan clear-compiled
可能会有所帮助
b)我更改了以下代码
$pattern = $compiler->createOpenMatcher('datetime');
和
return preg_replace($pattern, '$1format(\'m/d/Y H:i\')); ?>', $view);
因为Laravel 5文档中的示例将不起作用。
现在已经更正了示例。
该示例已被删除。