Laravel 5.5 Blade::if 简介
简介 if laravel 5.5
2023-09-27 14:26:44 时间
Laravel 5.5 引入了一个新的黑科技,就是你可以使用 Blade::if
来进行一些简单的逻辑判断啦!想不出应用场景在哪?想象下面的场景:
-
判断一个用户是否是 admin
-
判断应用的开发环境不同以便我们加载不同的 script 文件
上面的两个常见的场景,其实我们在使用的使用通常会用下面的写法来解决:
// 1.
@if(auth()->check() && auth()->user()->isAdmin())
@endif
// 2.
@if(app()->environment('production'))
@endif
很明显,如果我们需要在页面中多次重复使用上面的逻辑判断,我们就会写很多重复的代码,我们是否可以寻求一种自定义的 blade 标签来进行简单的逻辑判断,这样就OK了。
这就是 Blade::if
产生的原因了,我们来看看它的用法就知道了:
use Illuminate\Support\Facades\Blade;
Blade::if('admin', function () {
return auth()->check() && auth()->user()->isAdmin();
});
注意我们上面引用 Illuminate\Support\Facades\Blade
类,再定义一个 if 标签,标签的名字就是 admin
,所以在视图文件使用的时候是这样的:
@admin
<a href="{{ route('super.secret') }}">管理员页面</a>
@else
<a href="{{ route('login') }}">其他页面</a>
@endadmin
注意到没。我们直接使用的是 @admin
的用法,思路清晰直白。
再来看第二个应用场景,如何便捷的判断应用的环境是否是生产环境,我们可以这样:
Blade::if('prod', function () {
return app()->environment('production');
});
同理,如果我们是在 blade
视图使用这个判断的话,直接这样:
@prod
<script src="some-prod.js"></script>
@endprod
那如果说,我想传入参数呢?Easy:
Blade::if('env', function ($env) {
return app()->environment($env);
});
注意 function 这里我们传入了 $env 变量,使用的使用相应地传入值就好,大概是这样:
@env('production')
<script src="some-prod.js"></script>
@endenv
这是线上环境!
@env('local')
<script src="some-prod.js"></script>
@endenv
这是本地环境!
是不是超方便简单!
总结
在 Laravel 5.5 时善用 Blade::if
,确实是可以在特定的应用场景中带来便利的。我觉得你也应该知道这个小技巧,哈哈哈。
相关文章
- kubernetes 简介
- .NET Core/.NET之Stream简介 Rx.NET 简介
- 《微信小程序:开发入门及案例详解》—— 第1章 初识小程序 1.1 简介
- RabbitMQ从入门到精通(一) - 简介与安装(Docker和非Docker模式)
- SAP CRM 最新简介文字(2007年、中英文)
- SpringCloud服务发现(Eureka)简介
- 《面向对象设计实践指南:Ruby语言描述》—第1章 1.4节 面向对象编程简介
- 《图数据库(第2版)》——第1章 简介
- 《精通Wireshark》—第2章2.1节过滤器简介
- 依赖注入及AOP简述(十)——Web开发中常用Scope简介 .
- Express中间件简介
- Docker之Dockerfile简介
- 正则表达式简介及常用正则表达式分享