当前位置 博文首页 > 如何通过View::first使用Laravel Blade的动态模板详解

    如何通过View::first使用Laravel Blade的动态模板详解

    作者:specs 时间:2021-08-24 18:55

    前言

    本文主要给大家介绍了关于View::first使用Laravel Blade动态模板的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

    当创建动态组件或者页面的时候,有时候我们想当自定义模版存在的时候展示它,否则展示默认的模版。

    例如,当我们创建页面模块的时候,通常需要给“关于我们”和“联系我们”自定义模版(如展示照片或者联系表单),而“我们的服务”则可以使用默认模板。

    我们可以通过一系列的 if 判断或者使用 view()->exists()  来判断自定义模板是否存在,然而,Laravel 5.5 为我们带来了一个更加优雅的方法来实现这个功能。

    View::first 的使用

    view()->first() 方法可以使我们把下面的代码

    if (view()->exists('custom-template')) {
     return view('custom-template', $data);
    }
     
    return view('default-template', $data);

    替换为更加简洁的版本:

    return view()->first(
      ['custom-template', 'default-template'], $data
    );

    必须给这个方法的第一个参数传递一个数组,当第一个存在的时候,就将使用它。

    当然,你可以传递任意个数的模版,你甚至还可以使用动态名称:

    return view()->first([
      "pages/{$page->slug}",
      "pages/category-{$page->category->slug}",
      "pages/default-template"
    ], $data);

    此外,你还可以通过 Facade 版本的这个功能:

    \View::first($templates, $data)

    这个动态选择模版的 Blade 方法是在 Laravel 5.5 中引入的,使得处理动态模版更加简洁,不需要额外的条件判断了。

    总结

    jsjbwy