|
本帖最后由 周大胖子 于 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() 模板赋值- <?php
- namespace app\articles\controller;
- use think\View;
- class Vcm
- {
- public function mv1()
- {
- return '进来了 }
- // 模板动态创建
- public function mv2()
- {
- $view = new View();
- $view -> assign('lmk','lm');
- // http://localhost/public/index.php/articles/vcm/mv2 这个访问居然是错的?我擦!这是对的 我傻逼了
- // 如果 fetch 没有值,则模板默认渲染 articles/view/vcm/mv1.html 的页面的内容 .html 是默认伪后缀
- // 就是view/控制器/方法.html
- return $view -> fetch();
- }
- // 静态创建
- public function mv3()
- {
- // 静态创建
- $view = View::instance();
- // 模板赋值
- $view ->assign('lmk','lma');
- // 渲染模板
- return $view->fetch();
- }
- }
复制代码
二、继承基类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() 模板引擎;- <?php
- namespace app\articles\controller;
- use think\Controller;
- class Vcl extends Controller
- {
- public function mn1()
- {
- return '进来了 }
- // 继承控制器基类controller
- public function mn2()
- {
-
- // $this->view->assign('lkk','哈哈哈哈');
- // return $this->view->fetch();
- // 上面两句可以简写
- $this->assign('lkk','哈哈哈哈');
- return $this->fetch();
- }
- // // 静态创建
- // public function mv3()
- // {
-
- // }
- }
复制代码
三、助手函数 view()
1.不用继承Controller 类,不用实例化view 类,都可以使用;
2.仅适用于模板渲染,功能单一,不能加载配置;
3.语法 view([模板文件].[模板变量数组],l模板替换数组]);
4.使用方法实例: view('user',['name'=>'tp5'],['__SITE__'=>'php.cn']
|
|