我们将要学习一下 ThinkPHP 视图,视图是 Web 的可见内容,一般是 HTML
结合 PHP 获取的数据提供给用户使用的部分,属于 MVC 中的 V
一. 模版定义
默认的模版文件定义规则:视图目录/[模版主题/]控制器名/操作名+模版后缀
可以设置相关的配置来更改这些设置:红框标出的位置为修改的位置
//修改模版的视图目录
'DEFAULT_V_LAYER' =>'Template',
//修改模版中的文件的后缀
'TMPL_TEMPLATE_SUFFIX'=>'.tpl'
//用下划线代替目录层次,不用创建目录,而是用_链接的目录文件名称
'TMPL_FILE_DEPR'=>'_',
//设置外部的模版目录
'VIEW_PATH'=>'./Public/',
默认:
修改后:
//设置默认主题目录
'DEFAULT_THEME'=>'default',
//切换主题
$this->theme('blue')->display();
二、赋值和渲染
赋值:
//给模版传递一个变量
$this->assign('user', '蜡笔小新');
//模版中调用变量
{$user}
渲染:
渲染模版输出使用的是 display 方法,有三个可选参数:
display([模版文件][,字符编码][,输出类型]);
//不传参数
$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');
如果报这种错,不要被其迷惑;其实就是相当于 ./Template/Public/add.tpl.html
./WeiBo/Home/View/./Template/Public/add.tpl.html
三. 模版地址 T(),专门用于生成模版文件
T([资源://][模块@][主题/][控制器/]操作,[视图分层]);
和display()的参数有点相似,但是更高级。可以结合这个方法来实现模版目录的切换
四.获取模版内容----- fetch()方法
//获取模版里的内容
$content = $this->fetch();
var_dump($content);
//通过内容再渲染输出
$this->show($content);
这种获取模版所有代码(以字符串的形式),处理之后再渲染输出还是很强大的