ThinkPHP3.2版本—视图与模板

  • 模板的存放位置与Action的名称与操作名对应,默认对应关系为:
    视图目录/[模板主题/]控制器名/操作名+模板后缀
  • 可以支持主题,PHP空值代码样例:
    $this->theme(‘blue’)->display(‘add’);
  • 在模板中输出变量
    两种方式可以往页面中传值
 $this->assign('name',$value);
// 下面的写法是等效的
$this->name = $value;
$array['name']    =    'thinkphp';
$array['email']   =    '[email protected]';
$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');
     }
}
    -

你可能感兴趣的:(thinkphp)