资讯专栏INFORMATION COLUMN

5 个非常有用的 Laravel Blade 指令,你用过哪些?

stefan / 2100人阅读

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

接下来我将带大家认识下五个 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 知识社区

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28730.html

相关文章

  • Laravel 5 系列入门教程(二)【最适合中国人 Laravel 教程】

    摘要:原文发表在我的个人网站系列入门教程二最适合中国人的教程本教程示例代码见大家在任何地方卡住,最快捷的解决方式就是去看我的示例代码。 原文发表在我的个人网站:Laravel 5 系列入门教程(二)【最适合中国人的 Laravel 教程】 本教程示例代码见:https://github.com/johnlui/Learn-Laravel-5 大家在任何地方卡住,最快捷...

    未东兴 评论0 收藏0
  • 2. Laravel视图View和路由Route初探 - Laravel从零开始教程

    摘要:在程序界最熟悉的莫过于通过输出我们能了解路由和最基础的视图,这一小节,我们主要是学习下如何创建路由,如何加载视图,这节非常简单,跟着做就行。从零开始学教程目录 在程序界最熟悉的莫过于Hello World,通过输出Hello Word,我们能了解路由和最基础的视图,这一小节,我们主要是学习下如何创建路由,如何加载视图,这节非常简单,跟着做就行。 上一节我们通过laravel new 项...

    iliyaku 评论0 收藏0
  • Laravel 5 系列教程三:视图变量传递和Blade

    摘要:所以在视图中我们需要这样输出这里应写成,而不是。这个时候注意更改视图的变量输出。 原文来自: https://jellybool.com/post/programming-with-laravel-5-blade-views-with-var 系列文章: http://segmentfault.com/blog/jellybool 免费视频教程地址 https://laravist...

    jindong 评论0 收藏0
  • Laravel 工具包推荐--角色/权限管理】

    摘要:在大多数的开发中,角色和权限的管理都是非常重要的一部分。上关于角色和权限管理的包有很多,今天就为大家介绍几个好用的包。缓存在中,为了提高应用的性能,或自动的存储角色和权限数据。 showImg(https://segmentfault.com/img/bVTEb3?w=2200&h=1125); 在大多数的web开发中,角色和权限的管理都是非常重要的一部分。Laravel上关于角色和权...

    xiaoxiaozi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<