• Thinkphp5 实现动态模板主题多个模板切换


    在项目开发过程中会遇到一个网站有不同风格,本文详细介绍Thinkphp5 实现模板主题多个模板切换

    一、在Config中配置view_path模板路径代码如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    'template'               => [
          // 模板引擎类型 支持 php think 支持扩展
          'type'         => 'Think',
          // 模板路径
          'view_path'    => '/template/',
          // 模板后缀
          'view_suffix'  => 'html',
          // 模板文件名分隔符
          'view_depr'    => DS,
          // 模板引擎普通标签开始标记
          'tpl_begin'    => '{',
          // 模板引擎普通标签结束标记
          'tpl_end'      => '}',
          // 标签库标签开始标记
          'taglib_begin' => '{',
          // 标签库标签结束标记
          'taglib_end'   => '}',
      ],

      

    二、所有控制器继承 Base控制器,Base 控制器代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    class Base extends Controller
    {
     
        public  function __construct(Request $request)
        {
            if($request->isMobile())
            {
                config('template.view_path','template/default/mobile/'.$request->module()."/");
            }
            else{
                config('template.view_path','template/default/web/'.$request->module()."/");
            }
            parent::__construct($request);
        }
    }

      

    PS:必须在构造函数里用config,构造函数过后调用就没用了

    ====================================

    以上是全局切换,下面 是自定义切换

    ====================================

    1.无参数调用

    return $view->fetch();

    2.指定操作调用

    return $view->fetch("index");

    3.带控制器

    return $view->fetch("demo/index");

    4.跨模块调用

    return $view->fetch("admin@demo/index");

    5.全路径模板调用

    return $view->fetch(APP_PATH.request()->module().'/view/demo/index.html');


    采用5,全路径模板调用可解决
  • 相关阅读:
    linux 静态库和动态库(共享库)的制作与使用(注意覆盖问题)转
    手机号码格式正则表达式
    项目去除TFS关联、迁移重部署
    Excel中VLOOKUP函数的用法和注意点
    自定义打赏插件
    分享一个无需注册,无次数限制的Smile聊天机器人接口
    TCP/IP
    Java字典树
    平衡二叉树结构 AVL
    二叉搜索树(二叉排序树)BST
  • 原文地址:https://www.cnblogs.com/apolloren/p/12070944.html
Copyright © 2020-2023  润新知