Blade::if () 指令( Laravel 5.5 新功能早知道)
Laravel 5.5 的 Blade 模板引擎中添加新的指令来简化视图中自定义的 if 语句。
要在你的 AppServiceProvider::boot()
方法中,像这样写:
use Illuminate\Support\Facades\Blade;
Blade::if('adminer', function () {
return auth()->check() && auth()->user()->isAdmin();
});
在上面这段代码中,新的 Blade::if()
可以方便地从模板中抽出重复的检查,让它们更易读:
@adminer
<a href="{{ route('super.secret') }}">Secret Page</a>
@else
Welcome Guest. <a href="{{ route('login') }}">Login</a>
@endadminer
在以前的 Laravel 版本中,要达成这样的效果,必须再写一些代码。 例如,在 Laravel 5.4 中,David Hemphill 使用这种技术推出了一些非常酷的指令:
但现在在 Laravel 5.5 中更简化了:
Blade::if('prod', function () {
return app()->environment('production');
});
还可以传递参数使检查更具动态性:
Blade::if('env', function ($env) {
return app()->environment($env);
});
那么在你的模板中会看起来像这样:
@env('production')
<script src="some-prod.js"></script>
@endenv
如果你想了解更多有关 Blade::if()
的使用,可以查看 视频 教程!Laravel 5.5 快出来了,你也可以一口气查看 Laracasts 上所有跟新功能相关的视频。
今天的 Laravel 新闻播报就到这里 :tada: 谢谢捧场~ 点击订阅 Laravel 资讯 或者使用这个 插件 可以让你第一时间查看新内容呢!
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer
于 7年前 加精
我怎么感觉更麻烦了。
5.5应该快要发布了吧,7月已经过了一半了030
期待5.5啊! 这样公司项目可以切过去了
5.5不出,我就不写代码!
你又开始创作了
文件夹都建好了,就等5.5了
@hhiew 从另外一个角度去看,我们在blade页面中书写的代码将更加具有语义化的感觉。但是要求自己在命名时注意如何才能见名知意。