本文主要讲解传参和模板渲染,稍微涉及一些函数和默认值设置。并介绍了不同格式数据如何传参和渲染。
目录
安装
TP6之后默认没有安装驱动,只能使用php原生引擎,很多效果需要自己实现;
如果使用tp引擎需要下载安装,命令如下:
composer require topthink/think-view
模板配置
默认情况下,config/view.php 就是默认模版引擎的配置文件;
一般情况下,不需要任何改动。如果不是就改为“Think”。
赋值变量
assign()方法
在控制器中使用门面View静态调用assign赋值模板变量。
public function index()
{
View::assign('name', 'zhangsan');
return View::fetch('test/index');
}
fench()方法
在控制器中使用门面View静态调用fetch方法,参数1模板路径,参数2模板变量。
public function index()
{
return View::fetch('test/index', ['name' => 'zhangsan']);
}
view()方法
在控制器使用view帮助函数,参数1模板路径,参数2模板变量。
public function index()
{
return view('test/index', ['name' => 'zhangsan']);
}
视图模板
在视图模板中解析渲染变量
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试模板渲染</title>
</head>
<body>
<h2>{$name}</h2>
</body>
</html>
变量输出
对象格式输出
public $name = '张三';
public $gender = '男';
public $hobby = '法律';
public $job = '律师';
public function index()
{
return view('test/index', [
'obj' => $this
]);
$arr = [
'name' => '张三',
'gender' => '男',
'hobby' => '法律',
'job' => '律师'
];
return view('test/index', [
'arr' => $arr
]);
}
视图模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试模板渲染</title>
</head>
<body>
<h2>姓名:{$obj->name}</h2>
<ul>
<li>性别:{$obj->gender}</li>
<li>爱好:{$obj->hobby}</li>
<li>职业:{$obj->job}</li>
</ul>
</body>
</html>
数组格式输出
控制器
$arr = [
'name' => '张三',
'gender' => '男',
'hobby' => '法律',
'job' => '律师'
];
return view('test/index', [
'arr' => $arr
]);
视图模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试模板渲染</title>
</head>
<body>
<h2>姓名:{$arr.name}</h2>
<ul>
<li>性别:{$arr.gender}</li>
<li>爱好:{$arr.hobby}</li>
<li>职业:{$arr.job}</li>
</ul>
</body>
</html>
默认值
当传递的模板变量为空时,可设置默认值来显示。
public function index()
{
$arr = [
'name' => '张三',
'gender' => '男',
'hobby' => '法律',
'job' => ''
];
return view('test/index', [
'arr' => $arr
]);
}
视图模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试模板渲染</title>
</head>
<body>
<h2>姓名:{$arr.name}</h2>
<ul>
<li>性别:{$arr.gender}</li>
<li>爱好:{$arr.hobby}</li>
<li>职业:{$arr.job|default='未知'}</li>
</ul>
</body>
</html>
函数
内置系统函数
函数 | 说明 |
date | 格式化时间{$time|date='Y-m-d'} |
format | 格式化字符串{$number|format='%x'} |
upper | 转换为大写 |
lower | 转换为小写 |
first | 输出数组的第一个元素 |
last | 输出数组的最后一个元素 |
default | 默认值 |
raw | 不使用转义 |
md5加密
对模板变量做MD5处理。
爱好:{$arr.hobby | md5}
直接输出,不转义
爱好:{$arr.hobby|raw}
格式化时间戳
{$arr.time|date='Y-m-d'}
PHP 的语法模式
不进行转移过滤
{:substr(strtoupper(md5($arr.name)), 0, 3)}
总结
对于模板的变量传递和视图简单渲染,就到这里了。