老莫的笔记本  
  
请选择 进入手机版 | 继续访问电脑版
查看: 1152|回复: 4

TP5 模板赋值的五种方式

[复制链接]

662

主题

878

帖子

5113

积分

超级版主

Rank: 8Rank: 8

积分
5113
发表于 2018-8-16 22:52:58 | 显示全部楼层 |阅读模式
1.通过assign() 方法 ;
【assign()方法,既可以用视图类,也可以用控制器调用(继承基类) 】
1.1 单独赋值: $this->assign('变量名','值')
1.2 批量赋值: $this->assign(['变量名'=>'值','变量名'=>'值'])

先来个静态的 视图类静态方法
  1. <?php
  2. namespace app\articles\controller;
  3. use think\View;
  4. class Vcm
  5. {
  6.    
  7.     // 通过 assign 给模板赋值 --- 这是静态方法
  8.     public function mv3()
  9.     {
  10.         $view = View::instance();
  11.         $view ->assign('lmk','lma');
  12.         $view ->assign([
  13.             'junshi'=>'米虫',
  14.             'aihao'=>'睡觉',
  15.         ]);
  16.         // 渲染模板
  17.         return $view->fetch();
  18.     }
  19. }
复制代码
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4.     <meta charset="utf-8">
  5.     <title>测试</title>
  6. </head>
  7. <body>
  8.     这是 articles/view/vcm/mv3.html 的页面的内容
  9.     <hr />
  10.     我的年龄为 ---- {$lmk}
  11.     <br />
  12.     我的军师是 ---- {$junshi}
  13.     <br />
  14.     我的爱好是 ---- {$aihao}
  15. </body>
  16. </html>
复制代码
再来个动态的 继承 controller 的  类型其实差不多  mn3 的代码我不贴了
  1. <?php
  2. namespace app\articles\controller;
  3. use think\Controller;
  4. class Vcl extends Controller
  5. {
  6.    
  7.     // 通过 assign 给模板赋值 --- 这是继承基类
  8.     public function mn3()
  9.     {
  10.         $this->assign('age',19);
  11.         $this->assign([
  12.             'junshi'=>'大力',
  13.             'aihao'=>'睡觉',
  14.         ]);
  15.         return $this->fetch();
  16.     }
  17. }
复制代码
回复

使用道具 举报

662

主题

878

帖子

5113

积分

超级版主

Rank: 8Rank: 8

积分
5113
 楼主| 发表于 2018-8-16 23:07:22 | 显示全部楼层
第二种,fetch()  和 display()  方法传参赋值
一、$this->fetch('模板文件',['变量名'=>'值','变量名'=>'值','变量名'=>'值',])
    return $this ->fetch('index',['name'=>'hah','age'=>24])
  1. public function mv3()
  2.     {
  3.         $view = View::instance();
  4.         // 渲染模板
  5.         return $view->fetch('mv3',[
  6.             'junshi'=>'米虫',
  7.             'aihao'=>'睡觉',
  8.         ]);
  9.     }
复制代码
二、display()
2.1 $this->display('内容',['变量名'=>'值','变量名'=>'值','变量名'=>'值',])
例如: return $this->display('姓名:{$name} 年龄:{$age}',[
                     'name'=>'pyt',
                      'age'=>28
          ]
【在测试的时候继承了 基类】
  1.   public function mn3()
  2.     {
  3.         // $this->assign('age',19);
  4.         // $this->assign([
  5.         //     'junshi'=>'大力',
  6.         //     'aihao'=>'睡觉',
  7.         // ]);
  8.         // return $this->fetch();
  9.          
  10.         // 这是display 的测试
  11.          return $this->display('姓名:{$name} 年龄:{$age}',[
  12.                      'name'=>'pyt',
  13.                       'age'=>28,
  14.         ]);
  15.     }
复制代码




回复

使用道具 举报

662

主题

878

帖子

5113

积分

超级版主

Rank: 8Rank: 8

积分
5113
 楼主| 发表于 2018-8-16 23:13:40 | 显示全部楼层
三 给视图对象添加属性的方式赋值
1.先获取视图对象,通过给它动态添加属性的方式给模板赋值
2.继承基类:  $this->view->$name =$value ;
3.视图类: \think\View::instance() ->$name =$value
第二种的说明====大概就是楼下的这种方式 【这是继承controller 】
  1.    // $this->view->assign('lkk','哈哈哈哈');
复制代码

第三种说明:  【这个是直接实例化视图类】
  1.     //     $view = View::instance();
  2.     //     $view ->assign('lmk','lma');
  3.     //     $view ->assign([
  4.     //         'junshi'=>'米虫',
  5.     //         'aihao'=>'睡觉',
  6.     //     ]);
  7.     //     // 渲染模板
  8.     //     return $view->fetch();
复制代码

回复

使用道具 举报

662

主题

878

帖子

5113

积分

超级版主

Rank: 8Rank: 8

积分
5113
 楼主| 发表于 2018-8-16 23:17:54 | 显示全部楼层
第四种:用share 方法给( ) 给模板添加静态变量
4.1 支持在任何地方使用静态方法进行模板变量赋值
4.2 视图类调用 \think\view::share($name,$value)
4.3 控制器继承调用, $this->view->share($name,$value); //不推荐
4.4 全局使用静态模板变量最终会和前面使用方法赋值的模板变量合并
回复

使用道具 举报

662

主题

878

帖子

5113

积分

超级版主

Rank: 8Rank: 8

积分
5113
 楼主| 发表于 2018-8-16 23:20:55 | 显示全部楼层
第五种。不需要继承,不需要引入,【也基本用不到的 】助手函数
1.view() 可随时调用,不需要依赖
2.单独赋值 view($name,$value);
3.批量赋值 view(['key'=>'value','key'=>'value',]);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表