时间:2021-05-25
简介
Blade是Laravel提供的一个非常简单、强大的模板引擎,不同于其他流行的PHP模板引擎,Blade在视图中并不约束你使用PHP原生代码。所有的Blade视图都会被编译成原生PHP代码并缓存起来直到被修改,这意味着对应用的性能而言Blade基本上是零开销。Blade视图文件使用.blade.php文件扩展并存放在resources/views目录下。
接下来我将带大家认识下五个 Laravel Blade 指令,这些指令将让你在解决特定问题时如虎添翼。如果你是刚接触 Laravel 的用户,这些小技巧能带你认识到 Laravel Blade 模板引擎的便捷与高效。
废话少说,让我们开始吧。
1. 检测用户是否认证
你可以通过验证用户是否为空来检测其是否认证:
@if(auth()->user()) // 用户已认证@endif然而,Laravel 自带的 Blade 命令可以更简洁地实现相同的功能:
@auth // 用户已认证@endauth2. 检测用户是否为访客
与认证相反,我们可以用 auth 辅助函数的 guest() 方法来检测用户是否为访客:
@if(auth()->guest()) // 用户未认证@endif不过 Laravel 也为此提供了 @guest 命令:
@guest // 用户未认证@endguest我们也可以使用 else 语句来组合这两个命令:
@guest // 用户未认证@else // 用户已认证@endguest3. 如果第一个视图存在则引入,否则引入第二个
构建多主题站点可能会有一个文件如果存在就引入,否则就引入另一个的需要,你可以简单地使用条件判断来实现:
@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 项目里的前端模板。
重构快乐!
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Laravel5.1框架Blade模板引擎用法。分享给大家供大家参考,具体如下:为什么要使用blade它是干什么用的?blade模板引擎使我们写H
本文实例讲述了Laravel框架Blade模板及模板继承用法.分享给大家供大家参考,具体如下:本章知识点主要如下:Blade模板简介Blade模板继承使用NO.
有时候我们需要在Laravel的Blade模版中定义一些变量,而Blade却没有提供这样的方法,所以我们这里为大家分享两种可以实现在Blade模版中定义变量的方
1:我们使用了Blade模板,并创建一个layout作为通用的模板。将子页面作为yield输出:Laravel5-@yield('title')@yield('
前言本文主要给大家介绍了关于Laravel中Blade模板引擎的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧。Blade模板引擎Blad