Blade::if () 指令( Laravel 5.5 新功能早知道)

file
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 使用这种技术推出了一些非常酷的指令:

file

但现在在 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 上所有跟新功能相关的视频。

参考链接:https://laravel-news.com/bladeif

今天的 Laravel 新闻播报就到这里 :tada: 谢谢捧场~ 点击订阅 Laravel 资讯 或者使用这个 插件 可以让你第一时间查看新内容呢!

本作品采用《CC 协议》,转载必须注明作者和本文链接
Stay Hungry, Stay Foolish.
本帖由 Summer 于 6年前 加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

我怎么感觉更麻烦了。

6年前 评论
Kurisu

5.5应该快要发布了吧,7月已经过了一半了030

6年前 评论

期待5.5啊! 这样公司项目可以切过去了

6年前 评论

5.5不出,我就不写代码!

6年前 评论
Summer

你又开始创作了

6年前 评论

文件夹都建好了,就等5.5了

6年前 评论

@hhiew 从另外一个角度去看,我们在blade页面中书写的代码将更加具有语义化的感觉。但是要求自己在命名时注意如何才能见名知意。

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!