ThinkPHP--视图

视图即web可见内容,一般是HTML页面,属于MVC中的V。

模板的定义

模板在使用之前需要一定的设置才能方便开发者使用。默认的模板文件定义规则是:
视图目录/[模板主题/]控制器名/操作名+模板后缀

第一步:在User控制器模板执行一条语句:

//渲染模板输出
$this->display();

在没有进行任何定义ID情况下,会自动报错,错误信息可能是:
模板不存在:./thinkphp/Home/View/User/index.html

通过这个提示,我们需要在View目录下创建User目录,并在User目录下创建index.html文件,这时候的渲染输出就能成功。

默认情况下视图目录是View,如果你想改变成别的目录名可以设置:

//修改模板视图目录
'DEFAULE_V_LAYER'=>'Template',

默认情况下的模板文件后缀是.html,如果你想改变成别的后缀可以设置:

//修改模板中的文件的后缀
'TMPL_TEMPLATE_SUFFIX'=>'.tpl',

如果感觉每一个模块,都要创建相应的目录太过于麻烦,可以设置:

//用下划线代替目录层次  ---一般不用
'TMP_FILE_DEPR'=>'_'
//设置外部的模板目录(如果不想模板在view中,那就另外建)
'VIEW_PATH'=>'./Public/',

如果一个系统要考虑多套界面皮肤的花,要考虑到默认皮肤以及可选皮肤

//设置默认主题目录,完了之后还可以在view目录下建立blue、green等文件
夹对应相应颜色的主题
//当想调用这些主题的操作为:$this->theme('blue')->display();
'DEFAULT_THEME'=>'default',

赋值和渲染

一般主要是传递变量。需要在控制器中把变量传递给模板。Thinkphp提供了assign方法对模板变量赋值,无论何种变量类型都同意使用assign赋值。

//给模板传递一个变量
$this->assign('user','某某某');

//模板中调用变量
{$user}

PS:这个方法必须在display()方法前使用,保存变量正确传递。

渲染模板输出使用的是display方法,有三个可选参数:
display([模板文件][,字符编码][,输出类型]);

如果不传递任何参数,它会按照默认的目录定位模板的位置:
当前模块/默认视图目录/当前控制器/当前操作.html

//不传参数
$this->display();
./thinkphp/Home/View/default/User/index.html

//修改默认模板
$this->display('add');
./thinkphp/Home/View/default/User/add.html

//切换view下不同文件夹的模板(比如view下admin文件夹下的add.html)
$this->dispaly('admin:add');
./

模板地址

tp框架封装了一个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()方法输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值