ThinkPHP5 模板渲染
来源:互联网 发布:c语言源程序的扩展名 编辑:程序博客网 时间:2024/05/16 18:38
模板变量赋值
在进行模板渲染之前,一般需要对模板变量进行赋值,也就是说模板里面输出的变量
是必须先赋值到模板才能调用(除了一些系统默认支持的系统变量可以直接使用外),
使用未赋值的模板变量会抛出变量未定义异常。
模板变量赋值其实最终都是调用的视图类的 assign方法,如果控制器已经继承了系
统的控制器基类,则可以直接使用下面的方式赋值模板变量。
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
// 给模板变量name赋值
$this->assign('name', 'thinkphp');
// 批量赋值
$this->assign([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
return $this->fetch();
}
}
模板文件中输出变量的方式(忽略其它的html代码):
名称:{$name} 邮箱:{$email}
如果使用的是助手函数的话,则采用下面的方式赋值模板变量:
<?php
namespace app\index\controller;
class Index
{
public function index()
{
// 使用助手函数批量赋值模板变量
return view('', ['name' => 'thinkphp', 'email' => 'thinkphp@qq.com']);
}
}
我们上一讲已经讲过view助手函数的返回值是一个Response对象,
因此还可以使用assign方法进行模板变量赋值:
<?php
namespace app\index\controller;
class Index
{
public function index()
{
// 使用助手函数批量赋值模板变量
return view()->assign(['name' => 'thinkphp', 'email' => 'thinkphp@qq.com']);
}
}
如果是自己实例化的视图类,那么赋值变量的方式如下:
<?php
namespace app\index\controller;
use think\Config;
use think\View;
class Index
{
public function index()
{
$view = new View(Config::get('template'), Config::get('view_replace_str'));
$view->assign('name', 'thinkphp');
$view->assign(['name' => 'thinkphp', 'email' => 'thinkphp@qq.com']);
return $view->fetch();
}
}
系统变量及请求变量可以无需赋值而直接在模板中使用(针对内置模板引擎而言,其它请忽略),例如:
输出系统变量$_POST['name']
{$Think.post.name}
输出$_SESSION['user_id']
{$Think.session.user_id}
输出系统常量
{$Think.const.APP_PATH}
$Think.变量输出标签支持输出$_SERVER、$_ENV、$_POST、$_GET、$_REQUEST、
$_SESSION和$_COOKIE变量,以及配置参数和常量。
新版引入了一个新的机制用于输出当前请求对象的相关变量:
{$Request.post.name} {$Request.session.user_id} {$Request.route.name} {$Request.root}
$Request.表示调用当前请求对象实例,后面的post、session、route以及root其实是请求对象
的一个方法名,后面的字符串是方法的第一个参数,支持多级变量输出,例如:
{$Request.post.user.user_name}
其实相当于调用如下的方法:
echo Request::instance()->post('user.user_name');
注意必须严格区分大小写的使用 $Think和 $Request,这样设计是尽量避免和其它赋值的模板变量冲突。
更多的变量输出和模板标签的使用请参考官方的完全开发手册。
在进行模板渲染之前,一般需要对模板变量进行赋值,也就是说模板里面输出的变量
是必须先赋值到模板才能调用(除了一些系统默认支持的系统变量可以直接使用外),
使用未赋值的模板变量会抛出变量未定义异常。
模板变量赋值其实最终都是调用的视图类的 assign方法,如果控制器已经继承了系
统的控制器基类,则可以直接使用下面的方式赋值模板变量。
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function index()
{
// 给模板变量name赋值
$this->assign('name', 'thinkphp');
// 批量赋值
$this->assign([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
return $this->fetch();
}
}
模板文件中输出变量的方式(忽略其它的html代码):
名称:{$name} 邮箱:{$email}
如果使用的是助手函数的话,则采用下面的方式赋值模板变量:
<?php
namespace app\index\controller;
class Index
{
public function index()
{
// 使用助手函数批量赋值模板变量
return view('', ['name' => 'thinkphp', 'email' => 'thinkphp@qq.com']);
}
}
我们上一讲已经讲过view助手函数的返回值是一个Response对象,
因此还可以使用assign方法进行模板变量赋值:
<?php
namespace app\index\controller;
class Index
{
public function index()
{
// 使用助手函数批量赋值模板变量
return view()->assign(['name' => 'thinkphp', 'email' => 'thinkphp@qq.com']);
}
}
如果是自己实例化的视图类,那么赋值变量的方式如下:
<?php
namespace app\index\controller;
use think\Config;
use think\View;
class Index
{
public function index()
{
$view = new View(Config::get('template'), Config::get('view_replace_str'));
$view->assign('name', 'thinkphp');
$view->assign(['name' => 'thinkphp', 'email' => 'thinkphp@qq.com']);
return $view->fetch();
}
}
系统变量及请求变量可以无需赋值而直接在模板中使用(针对内置模板引擎而言,其它请忽略),例如:
输出系统变量$_POST['name']
{$Think.post.name}
输出$_SESSION['user_id']
{$Think.session.user_id}
输出系统常量
{$Think.const.APP_PATH}
$Think.变量输出标签支持输出$_SERVER、$_ENV、$_POST、$_GET、$_REQUEST、
$_SESSION和$_COOKIE变量,以及配置参数和常量。
新版引入了一个新的机制用于输出当前请求对象的相关变量:
{$Request.post.name} {$Request.session.user_id} {$Request.route.name} {$Request.root}
$Request.表示调用当前请求对象实例,后面的post、session、route以及root其实是请求对象
的一个方法名,后面的字符串是方法的第一个参数,支持多级变量输出,例如:
{$Request.post.user.user_name}
其实相当于调用如下的方法:
echo Request::instance()->post('user.user_name');
注意必须严格区分大小写的使用 $Think和 $Request,这样设计是尽量避免和其它赋值的模板变量冲突。
更多的变量输出和模板标签的使用请参考官方的完全开发手册。
阅读全文
0 0
- ThinkPHP5 模板渲染
- ThinkPHP5 模板渲染
- ThinkPHP5 模板渲染
- ThinkPHP5 模板渲染
- thinkPHP5-渲染模板的方式
- thinkphp5 使用__PUBLIC__等进行模板渲染输出
- Thinkphp5模板引入
- ThinkPHP5模板分离
- thinkPHP5模板布局
- 渲染模板
- 模板 渲染
- 渲染模板
- thinkphp5模板篇之 模板循环标签
- thinkphp5 之数据操作和模板输出
- THINKPHP5 入门 -7 视图和模板
- Thinkphp5学习(25)视图和模板
- thinkphp5 引入前台、后台模板方法
- thinkphp5自定义 模板替换规则 如__PUBLIC__
- LoRa无线技术
- Linux挂载新硬盘
- sqoop中文手册
- 首次集成Appium自动测试IOS遇见的问题
- 分布式通讯-序列化之protobuf
- ThinkPHP5 模板渲染
- 泛型
- 洛谷P1314 NOIP2011 聪明的质检员 原题+详细题解
- css-alert-ns-style-growl.css
- 4.IDA-导航(跳转到地址、导航按钮、栈帧、调用约定、局部变量布局、IDA的栈视图)
- 测试管理工具对比
- C++排序问题
- 使用高大上的pm2代替forever部署nodejs项目
- elasticsearch 分页遇到的坑