ThinkPHP3.2版本—视图与模板
- 模板的存放位置与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 HomeController;
use ThinkController;
Class UserController extends Controller{
Public function add() {
layout("Layout/newlayout");
$this->display("add");
}
}
-
-
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: PHP保留2位小数
- 下一篇: mfc窗口中生成cmd窗口进行调试输出