当前位置:首页 > Web开发 > 正文

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

2024-03-31 Web开发

一、在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()."http://www.mamicode.com/");

        }

        else{

            config(‘template.view_path‘,‘template/default/web/‘.$request->module()."http://www.mamicode.com/");

        }

        parent::__construct($request);

    }

}

 

  

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

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

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

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

1.无参数调用

return $view->fetch();

2.指定操作调用

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

3.带控制器

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

4.跨模块调用

return $view->fetch("[email protected]/index");

5.全路径模板调用

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


采用5,全路径模板调用可解决

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

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/39954.html