Laravel 模板扩展 (扩展 Blade) 的相关问题 .
<?php
namespace App\Providers;
use Blade;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Perform post-registration booting of services.
*
* @return void
*/
public function boot()
{
Blade::directive('datetime', function($expression) {
return "<?php echo with{$expression}->format('m/d/Y H:i'); ?>";
});
}
/**
* Register bindings in the container.
*
* @return void
*/
public function register()
{
//
}
}
这个是官方给的Demo 然而并没帮上多大的忙.
这个扩展文件 或者说函数 到底要写在或者说是放在什么地方呢...
artisan make:provider AppServiceProvider
用这个命令会在App\Providers 下生成文件,然后再填代码就行了,写好了在app.php的providers内注册下这个类,blade就可以用了,记得清一下blade的缓存(artisan view:clear)
@hanvnan 来挖坟么!一年前的帖子,不过还是感谢您的回复,现在对模板自定义函数要求不是很高,项目中也很少会去用了。还有,我代码洁癖并不想把各种代码堆在 AppServiceProvider 里面!这种方案我认为是没有办法才会去做的。
@aqyuyang 哈哈哈哈,我发之前看了时间,我回一下是想万一有人百度看到,能对他有点帮助,那个mark:provider后面的是随便定义的,可以任意XXXServiceProvider
调用时,需要注意传参, @datetime(new \Datetime()), 否则无法执行format方法。