ThinkPHP3.2版本—视图与模板

来源:互联网 发布:软件技能有哪些 编辑:程序博客网 时间:2024/05/16 17:26
  • 模板的存放位置与Action的名称与操作名对应,默认对应关系为:
    视图目录/[模板主题/]控制器名/操作名+模板后缀
  • 可以支持主题,PHP空值代码样例:
    $this->theme(‘blue’)->display(‘add’);
  • 在模板中输出变量
    两种方式可以往页面中传值
 $this->assign('name',$value);// 下面的写法是等效的$this->name = $value;
$array['name']    =    'thinkphp';$array['email']   =    'liu21st@gmail.com';$array['phone']   =    '12335678';$this->assign($array);

assign方法必须在display和show方法之前调用。
两种在页面中获取值的方式:

//PHP内置模板引擎<?php echo $name;?>
// ThinkPHP内置名模板引擎{$name} 
  • 渲染模板
// 不带任何参数 自动定位当前操作的模板文件$this->display();// 指定模板输出,表示调用当前控制器下面的edit模板$this->display('edit'); // 表示调用Member控制器下面的read模板。$this->display('Member:read');// 如果我们使用了模板主题功能,那么也可以支持跨主题调用$this->theme('blue')->display('User:edit'); 
  • 直接获取模板的内容
$content = $this->fetch('Member:edit');
  • 如果模板存储在数据库或者其他类型的形式,可以使用show方法
$this->show($content);
  • 模板引擎的变量输出
//输出简单变量Hello,{$name}!//输出数组变量Name:{$data.name}或者 Name:{$data['name']}// 输出对象变量Name:{$data:name}// 系统变量输出{$Think.server.script_name} // 输出$_SERVER['SCRIPT_NAME']变量// 常量输出{$Think.const.MODULE_NAME} 或者 {$Think.MODULE_NAME}// 配置输出{$Think.config.db_charset}// 语言变量{$Think.lang.page_error}
  • 模板布局
    第一种方式:全局配置方式,比较适用于全站使用相同布局的情况,需要配置开启LAYOUT_ON 参数(默认不开启),并且设置布局入口文件名LAYOUT_NAME(默认为layout)。
'LAYOUT_ON'=>true,'LAYOUT_NAME'=>'layout',

开启之后,首先会渲染Application/Home/View/layout.html 模板。
第二种方式:模板标签方式,不需要在配置文件中设置任何参数,只需要在模板文件的开头标出需要使用的layout文件即可。

<layout name="layout" />

第三种方式:使用layout控制模板布局,使用内置的layout方法可以更灵活的在程序中控制模板输出的布局功能,尤其适用于局部需要布局或者关闭布局的情况,这种方式也不需要在配置文件中开启LAYOUT_ON。

namespace Home\Controller;use Think\Controller;Class UserController extends Controller{     Public function add() {         layout('Layout/newlayout');         $this->display('add');     }}
    -
0 0
原创粉丝点击