zoukankan      html  css  js  c++  java
  • 第 39 章 ThinkPHP--视图

    学习要点: 1.模版定义 2.赋值和渲染 3.模版地址 4.获取内容

    本节课,我们将要学习一下 ThinkPHP 视图,视图是 Web 的可见内容,一般是 HTML 结合 PHP 获取的数据提供给用户使用的部分,属于 MVC 中的 V。

    一.模版定义 模版在使用之前需要一定的设置,才能方便开发者使用。每个模块的模版文件是独立的, 为了对模版文件更加有效的管理,ThinkPHP 对模版文件机型目录划分,默认的模版文件定 义规则是: 视图目录/[模版主题/]控制器名/操作名+模版后缀 第一步:在 User 控制器模块执行一条语句: //渲染模版输出 $this->display(); 什么都没有定义的情况下,会自动报错,错误信息提示如下: 模板不存在:./Weibo/Home/View/User/index.html 通过这个错误提示,我们只要在 View 目录下创建 User 目录,并在 User 目录下创建 index.html 文件,这时模版渲染模版输出成功。 默认情况下视图目录是 View,如果你想改变成别的目录名可以设置: //修改模版的视图目录 'DEFAULT_V_LAYER' =>'Template', 默认情况下的模版文件后缀是.html,如果你想改变成别的后缀可以设置: //修改模版中的文件的后缀 'TMPL_TEMPLATE_SUFFIX'=>'.tpl' 如果感觉每一个模块,都要创建相应的目录太过于麻烦,可以设置: //用下划线代替目录层次 'TMPL_FILE_DEPR'=>'_', //User_index.tpl 如果不想将模版存在在当前 Weibo 目录下,而设置在外部: //设置外部的模版目录 'VIEW_PATH'=>'./Public/', 如果一个系统要考虑多套界面皮肤的话,要考虑到默认皮肤以及可选皮肤: //设置默认主题目录 'DEFAULT_THEME'=>'default', //切换主题 $this->theme('blue')->display(); 二.赋值和渲染 如果要在模版中输出变量,必须在控制器中把变量传递给模版。ThinkPHP 提供了 assign 方法对模版变量赋值,无论何种变量类型都统一使用 assign 赋值。 //给模版传递一个变量 $this->assign('user', '蜡笔小新'); //模版中调用变量 {$user} PS:这个方法必须在 display()方法之前使用,保存变量正确传递。

    渲染模版输出使用的是 display 方法,有三个可选参数: display([模版文件][,字符编码][,输出类型]); 如果不传递任何参数,它会按照默认的目录定位模版的位置: 当前模块/默认视图目录/当前控制器/当前操作.html //不传参数 $this->display(); ./Weibo/Home/View/default/User/index.tpl //修改默认模版 $this->display('add'); ./Weibo/Home/View/default/User/add.tpl //修改默认模版,目录加模版 $this->display('Bbb/add'); ./Weibo/Home/View/default/Bbb/add.tpl //修改默认模版,模块加目录加模版 $this->display('Admin@Bbb/add'); ./Weibo/Admin/View/default/Bbb/add.tpl //修改默认模版,主题加目录加模版 $this->theme('blue')->display('Bbb/add'); ./Weibo/Home/View/blue/Bbb/add.tpl //修改默认模版,自定义模版 $this->display('./Template/Public/add.tpl'); ./Template/Public/add.tpl //Template 和 Weibo 同级 //修改默认模版,指定编码和文件类型,一般不用填写,默认即可 $this->display('add', 'utf-8', 'text/xml');

    三.模版地址 ThinkPHP 封装了一个 T 函数,专门用于生成模版文件。格式如下: T([资源://][模块@][主题/][控制器/]操作,[视图分层]); //输出当前模版地址 echo T(); 当然可以结合上面讲的所有定义方法来自定义模版: echo T('Public/add') echo T('Admin@index'); echo T('Admin@Public/add', 'Template'); //直接使用T函数输出 $this->display(T()); 四.获取内容 如果需要获取模版的内容,可以使用 fetch()方法,这个方法的使用和 display()方 法一致。 //获取模版里的内容 $content = $this->fetch(); var_dump($content); //通过内容再渲染输出 $this->show($content); PS:使用 fetch()方法获取内容,主要是为了可以处理和过滤更加复杂的内容。然后 处理后再由 show()方法输出。 感谢收看

    我的个人博客,欢迎来访问!网址:http://www.miuu.club
  • 相关阅读:
    Windows 8.1 应用开发 – 触控操作
    Windows Phone App Studio 无码开发手机应用
    尝试HTML + JavaScript 编写Windows App
    Ubuntu远程连接MySQL(connection refused)解决方法
    [MySQL]查看用户权限与GRANT用法
    mysql 创建用户命令-grant
    搭建memcached使用:/usr/bin/phpize 安装memcached扩展的时候报错
    在linux中使用phpize安装php扩展模块
    跟锦数学全部资料
    33套2020数分高代试题参考解答[2020/04/14更新,更多请关注跟锦数学微信公众号]
  • 原文地址:https://www.cnblogs.com/yu520zhong/p/4855842.html
Copyright © 2011-2022 走看看