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

TP5 视图实例化的三种方法

[复制链接]

662

主题

878

帖子

5131

积分

超级版主

Rank: 8Rank: 8

积分
5131
发表于 2018-8-15 22:29:11 | 显示全部楼层 |阅读模式
本帖最后由 周大胖子 于 2018-8-15 23:32 编辑

其实这个用的已经比较少了,但是不得不承认,还是有用的;
【前两天想起来的事情。调用登录功能。现在前后端分离,前台控制路由,难免会加载出东西后再判断,如果前后端分离不彻底,就可以从后台来判断,那页面也就不会被加载出来。 扯远了。滚回来谈TP5 视图实例化(就是渲染页面)】

基础常识: 一、实例化
1.视图类: thinkphp/library/think/View.php
2.命名空间:use think\view
3.实例化: 动态 new View() ; 静态 View::instance()
4.常用方法:fetch()渲染模板,display() 渲染内容,assign() 模板赋值
  1. <?php
  2. namespace app\articles\controller;
  3. use think\View;
  4. class Vcm
  5. {
  6.     public function mv1()
  7.     {
  8.         return '进来了    }
  9.     // 模板动态创建
  10.     public function mv2()
  11.     {
  12.         $view = new View();
  13.         $view -> assign('lmk','lm');
  14.         // http://localhost/public/index.php/articles/vcm/mv2 这个访问居然是错的?我擦!这是对的 我傻逼了
  15.         // 如果 fetch 没有值,则模板默认渲染 articles/view/vcm/mv1.html 的页面的内容 .html 是默认伪后缀
  16.         //  就是view/控制器/方法.html
  17.         return $view -> fetch();
  18.     }
  19.     // 静态创建
  20.     public function mv3()
  21.     {
  22.         // 静态创建
  23.         $view = View::instance();
  24.         // 模板赋值
  25.         $view ->assign('lmk','lma');
  26.         // 渲染模板
  27.         return $view->fetch();
  28.     }
  29. }
复制代码


二、继承基类controller
1.控制器类: thinkphp/library/think/Controller;
2.命名空间:use think/Controller;
3.实例化: $this->view   ;可访问view类的所有属性和方法【其实就是在Controller 中实例化了View 类而已】
4.常用方法: $this->fetch() 渲染模板; $this->display() 渲染内容; $this->assign() 模板赋值;$this->engine() 模板引擎;
  1. <?php
  2. namespace app\articles\controller;
  3. use think\Controller;
  4. class Vcl extends Controller
  5. {
  6.     public function mn1()
  7.     {
  8.         return '进来了    }
  9.    // 继承控制器基类controller
  10.     public function mn2()
  11.     {
  12.       
  13.         // $this->view->assign('lkk','哈哈哈哈');
  14.         // return $this->view->fetch();
  15.         // 上面两句可以简写
  16.         $this->assign('lkk','哈哈哈哈');
  17.         return $this->fetch();
  18.     }
  19.     // // 静态创建
  20.     // public function mv3()
  21.     // {
  22.      
  23.     // }
  24. }
复制代码

三、助手函数 view()
1.不用继承Controller 类,不用实例化view 类,都可以使用;
2.仅适用于模板渲染,功能单一,不能加载配置;
3.语法 view([模板文件].[模板变量数组],l模板替换数组]);
4.使用方法实例: view('user',['name'=>'tp5'],['__SITE__'=>'php.cn']




回复

使用道具 举报

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

本版积分规则

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