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 资讯 或者使用这个 插件 可以让你第一时间查看新内容呢!

Stay Hungry, Stay Foolish.