Blade::if() 指令
发布于 作者: Paul Redmond
Laravel 5.5 中新增的 Blade 功能将为您的视图中简化自定义 if
语句提供支持。
您的 AppServiceProvider::boot()
方法中的语法可能类似于以下内容
use Illuminate\Support\Facades\Blade; Blade::if('admin', function () { return auth()->check() && auth()->user()->isAdmin();});
新的 Blade::if()
使得将重复的检查从模板中抽象出来变得方便,从而使模板更具可读性
@admin <a href="{{ route('super.secret') }}">Secret Page</a>@else Welcome Guest. <a href="{{ route('login') }}">Login</a>@endadmin
在以前版本的 Laravel 中,您需要编写更多代码。例如,David Hemphill 在 Twitter 上分享了一些使用此技巧创建的非常酷的指令,这些指令在 Laravel 5.4 中使用。
???? 在 Blade 指令中尽情发挥您的创意。最简单的事情可以从您的模板中抽象出大量的视觉噪音。 pic.twitter.com/p5udGWJkhd
— David Hemphill (@davidhemphill) 2017 年 6 月 22 日
现在在 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()
,Laracasts 提供了一个关于它的 视频 教程,我们期待看到您将它用在什么地方!