ThinkPHP3.2版本—视图与模板

本文介绍了ThinkPHP3.2版本中视图与模板的使用方法,包括模板存放位置、Action与模板的对应关系、模板变量的输出、页面值的传递、渲染与显示模板以及模板引擎的布局策略。内容涵盖全局配置布局、模板标签布局和动态控制布局等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 模板的存放位置与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');
     }
}
  • -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值