应该将 Blade::extend 放置于哪个文件中?
-
创建
app/Providers/BladeServiceProvider.php
文件<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class BladeServiceProvider extends ServiceProvider { public function boot() { /* @datetime($var) */ \Blade::extend(function($view, $compiler) { $pattern = $compiler->createOpenMatcher('datetime'); return preg_replace($pattern, '$1<?php echo $2->format(\'m/d/Y H:i\')); ?>', $view); }); /* @eval($var++) */ \Blade::extend(function($view) { return preg_replace('/\@eval\((.+)\)/', '<?php ${1}; ?>', $view); }); } public function register() { // } }
-
在
config/app.php
配置文件中添加<?php return [ // ... 'providers' => [ // ... 'App\Providers\BladeServiceProvider',
-
执行
php artisan clear-compiled
-
在模板中使用自定义的方法,例:
@datetime($updated_at) // 或者 @eval($var = 1) @eval($var++)
-
注意
blade
模板是会被框架缓存的, 尝试在模板中进行虚拟的更改,这样框架会重新编译模板
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。