资讯专栏INFORMATION COLUMN

Laravel 配置双模板

TZLLOG / 1862人阅读

摘要:在开发过程中不时会遇到某些项目需要使用两套模板如端和端使用不同的模板文件以达到最佳的用户体验遇到这种情况我们应该如何配置的模板文件呢安装传送门用于判断或设备按需加载不同的模板使用命令新建一个中间件执行后会在目录生成中间件文件编辑文件如果是

在开发过程中, 不时会遇到某些项目需要使用两套模板

如PC端和Mobile端使用不同的模板文件, 以达到最佳的用户体验

遇到这种情况我们应该如何配置Laravel的模板文件呢?

1. 安装whichbrowser/parser 传送门: WhichBrowser/Parser-PHP

用于判断PC或Mobile设备, 按需加载不同的模板

composer require whichbrowser/parser
2. 使用artisan命令新建一个Middleware(中间件)

执行后会在app/Http/Middleware目录生成中间件文件

php artisan make:middleware Template
3. 编辑Template.php文件
class Template
{
    protected $except = [];

    public function handle($request, Closure $next)
    {
        $result = new WhichBrowserParser(getallheaders());
        // 如果是桌面类型, 返回true
        $isDesktop = $result->isType("desktop");
        if ($isDesktop) {
            // 加载pc端的模板文件
            $path = resource_path("views/pc/");
        } else {
            // 加载mobile端的模板文件
            $path = resource_path("views/mobile/");
        }
        // 获取视图查找器实例
        $view = app("view")->getFinder();
        // 重新定义视图目录
        $view->prependLocation($path);
        // 返回请求
        return $next($request);
    }
}
4. 最后注册中间件

app/Http/Kernel.php类中 按需注册中间件

如注册全局中间件:

protected $middleware = [
    AppHttpMiddlewareTemplate::class,
];

搞定, 就可以根据不同的设备加载不同的模板文件了

在控制中只需这样, 就可以根据不同的设备来加载不同的模板了

return view("registration.index", $data);

如从PC设备打开网页: 加载 /resources/views/pc/registration/index.blade.php 模板

如从移动设备打开网页: 加载 /resources/views/mobile/registration/index.blade.php 模板

原文: Laravel 配置双模板

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

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

相关文章

  • Laravel 5.8 前瞻

    摘要:发布于年月,从那时起大约每六个月会发布一次的新版本。将会支持相对较新的来管理项目中的环境文件。弃用和辅助函数所有的和全局辅助函数都已弃用,将在中删除。将返回更干净的相同值。和通知和通知已从主项目中删除,并提取到第三方软件包中。 showImg(https://segmentfault.com/img/remote/1460000018269419?w=585&h=400); 无论是从零...

    tianhang 评论0 收藏0
  • Laravel之邮件发送

    Laravel为我们提供了很便捷的邮件服务,只需要简单的配置就能使用。 -->另一篇Laravel队列发送邮件 它的配置文件在config/mail.php,下面我们来看看它的配置文件 这里的 driver 指的是使用的驱动,默认使用的是smtp driver => env(MAIL_DRIVER, smtp), 发送邮件的主机地址 host => env(MAIL_HOST, smt...

    B0B0 评论0 收藏0
  • Deployer init命令

    摘要:简介安装完成后输入开始初始化,生成默认的配置文件命令的实现在文件中目录则包含了初始化相关的模板命令类类继承了的类,实现为一个命令行的命令构造函数构造函数主要初始化了的和两个变量是一个包含了多个模板的初始化器具体实现就是下面将要分析的是初始化 0 简介 Deployer安装完成后输入dep init开始初始化,生成默认的配置文件deploy.phpinit命令的实现在srcConsole...

    Vultr 评论0 收藏0
  • Laravel SMS 短信发送包

    摘要:支持短信验证码未验证时,用户再次请求验证码,在有效分钟内验证码保持一致。集成短信发送路由,支持和发送方式。有效期为分钟,请尽快验证。 Laravel Sms Laravel 贴合实际需求同时满足多种通道的短信发送组件 showImg(https://segmentfault.com/img/remote/1460000013101233);showImg(https://segment...

    Seay 评论0 收藏0
  • Laravel 和 Spring Boot 两个框架比较创业篇(一:开发效率)

    摘要:小红要以最低成本最快速度推出版本,投放市场,收集反馈,持续迭代。总结在技能掌握充足的情况下,个人感觉开发效率要略高于。 我个人是比较不喜欢去正儿八经的比较两个框架的,这样没有意义,不过欲善其事先利其器! 技术是相通的,但是在某个特定的领域的某个阶段肯定有相对最适合的一个工具! 这里比较不是从技术角度比较,而是从公司技术选型考虑的,特别是初创的互联网创业公司。没办法,谁让互联网公司离不开...

    tinna 评论0 收藏0

发表评论

0条评论

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