5 个非常有用的 Laravel Blade 指令,你用过哪些?
接下来我将带大家认识下五个 Laravel Blade 指令,这些指令将让你在解决特定问题时如虎添翼。如果你是刚接触 Laravel 的用户,这些小技巧能带你认识到 Laravel Blade 模板引擎的便捷与高效。
废话少说,让我们开始吧。
1. 检测用户是否认证
你可以通过验证用户是否为空来检测其是否认证:
@if(auth()->user()) // 用户已认证 @endif
然而,Laravel 自带的 Blade 命令可以更简洁地实现相同的功能:
@auth // 用户已认证 @endauth
2. 检测用户是否为访客
与认证相反,我们可以用auth
辅助函数的guest()
方法来检测用户是否为访客:
@if(auth()->guest()) // 用户未认证 @endif
不过 Laravel 也为此提供了@guest
命令:
@guest // 用户未认证 @endguest
我们也可以使用else
语句来组合这两个命令:
@guest // 用户未认证 @else // 用户已认证 @endguest
3. 如果第一个视图存在则引入,否则引入第二个
构建多主题站点可能会有一个文件如果存在就引入,否则就引入另一个的需要,你可以简单地使用条件判断来实现:
@if(view()->exists('first-view-name')) @include('first-view-name') @else @include('second-view-name') @endif
不过还是有一个更简洁直观的命令来做这件事:
@includeFirst(['first-view-name', 'second-view-name']);
4. 根据条件引入视图
当你只想在一定逻辑的基础上(如:一个已通过认证的用户)添加一些内容的时候,根据条件引入视图就非常有用了。
你可以使用@if
条件来这样写:
@if($post->hasComments()) @include('posts.comments') @endif
我们可以只用一行命令 @includeWhen
来做到:
@includeWhen($post->hasComments(), 'posts.comments');
5. 引入一个存在的视图
如果你有自定义主题系统或者你需要动态地创建 Blade 视图,那么检查文件是否存在就是必须要做的。
可以在辅助函数 view()
上调用exists
方法:
@if(view()->exists('view-name')) @include('view-name') @endif
也可以使用 Blade 命令 includeIf
来处理:
@includeIf('view-name')
你可以通过Blade 官方文档了解更多实用的技巧来优化你 Laravel 项目里的前端模板。
重构快乐!
更多现代化 PHP 知识,请前往 Laravel / PHP 知识社区
相关推荐
独行者0 2020-04-21
成长路上 2020-02-22
yang0cs 2008-01-04
肉面飞龙 2007-08-22
shipinginfo 2007-06-05
freedomwind00 2017-08-26
maoweiting00 2011-06-12
pwl 2008-09-18
80226034 2016-12-21
87286933 2016-04-24
lfjjia 2010-11-02
ScaredParadise 2016-07-21
duwang0 2014-01-01
86477414 2010-09-06
hjding 2010-07-28
zchen 2012-08-08
duwang0 2012-08-08
fraternityjava 2012-07-29
cj0 2019-06-29