美文网首页LaravelPHP / Laravel / 全栈PHP开发者大本营
5 个非常有用的 Laravel Blade 指令,你用过哪些?

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

作者: summerbluet | 来源:发表于2018-05-29 12:04 被阅读12次
    file

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

    相关文章

      网友评论

        本文标题:5 个非常有用的 Laravel Blade 指令,你用过哪些?

        本文链接:https://www.haomeiwen.com/subject/wugojftx.html