分享5个非常有用的Laravel Blade指令

<p style="text-align: left">

简介

aravel提供的一个非常简单、强大的模板引擎,不同于其他流行的PHP模板引擎,Blade在视图中并不约束你使用PHP原生代码。所有的Blade视图都会被编译成原生PHP代码并缓存起来直到被修改,这意味着对应用的性能而言Blade基本上是零开销。Blade视图文件使用.blade.PHP文件扩展并存放在resources/views目录下。

接下来我将带大家认识下五个 Laravel Blade 指令,这些指令将让你在解决特定问题时如虎添翼。如果你是刚接触 Laravel 的用户,这些小技巧能带你认识到 Laravel Blade 模板引擎的便捷与高效。

废话少说,让我们开始吧。

1. 检测用户是否认证

你可以通过验证用户是否为空来检测其是否认证:

user()) // 用户已认证 @endif

然而,Laravel 自带的 Blade 命令可以更简洁地实现相同的功能

rush:PHP;"> @auth // 用户已认证 @endauth

2. 检测用户是否为访客

与认证相反,我们可以用 auth 辅助函数的 guest() 方法来检测用户是否为访客:

guest()) // 用户未认证 @endif

不过 Laravel 也为此提供了 @guest 命令:

rush:PHP;"> @guest // 用户未认证 @endguest

我们也可以使用 else 语句来组合这两个命令:

rush:PHP;"> @guest // 用户未认证 @else // 用户已认证 @endguest

3. 如果第一个视图存在则引入,否则引入第二个

构建多主题站点可能会有一个文件如果存在就引入,否则就引入另一个的需要,你可以简单地使用条件判断来实现:

exists('first-view-name')) @include('first-view-name') @else @include('second-view-name') @endif

不过还是有一个更简洁直观的命令来做这件事:

rush:PHP;"> @includeFirst(['first-view-name','second-view-name']);

4. 根据条件引入视图

当你只想在一定逻辑的基础上(如:一个已通过认证的用户添加一些内容的时候,根据条件引入视图就非常有用了。

你可以使用 @if 条件来这样写:

hasComments()) @include('posts.comments') @endif

我们可以只用一行命令 @includeWhen 来做到:

hasComments(),'posts.comments');

5. 引入一个存在的视图

如果你有自定义主题系统或者你需要动态地创建 Blade 视图,那么检查文件是否存在就是必须要做的。

可以在辅助函数 view() 上调用 exists 方法

exists('view-name')) @include('view-name') @endif

也可以使用 Blade 命令 includeIf 来处理:

rush:PHP;"> @includeIf('view-name')

你可以通过 nofollow" target="_blank" href="https://laravel.com/docs/5.6/blade">Blade 官方文档 了解更多实用的技巧来优化你 Laravel 项目里的前端模板。

重构快乐!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程之家的支持

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


laravel的dd函数不生效怎么办
看不懂laravel文档咋办
安装laravel框架出现command怎么办
Laravel开发API怎么使用事务
laravel怎么构建复杂查询条件
laravel如何实现防止被下载
为什么laravel比yii火
一些常见的Laravel定时任务不运行的问题
laravel用路由有什么好处
composer无法安装laravel怎么办
laravel现在还用吗
laravel怎么替换主键id
laravel的appurl有什么用
如何修改Laravel的报错输出形式
laravel怎么避免foreach查表
laravel怎样操作数据库
laravel怎么截取字符串
laravel 是国内的吗
laravel怎么设置请求头
浅析Laravel社区Redis组件报错的问题和解决方法