ThinkPHP 6.1 模板篇之传参和渲染

本文详细介绍了在ThinkPHP6框架中如何进行模板渲染,包括使用assign(),fetch()和view()方法进行变量赋值,以及对象和数组格式的数据在模板中的输出。还讨论了默认值的设定,以及内置函数如date和md5的使用,提供了模板中直接输出和不转义的方法。

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

本文主要讲解传参和模板渲染,稍微涉及一些函数和默认值设置。并介绍了不同格式数据如何传参和渲染。

目录

安装

模板配置

赋值变量

assign()方法

fench()方法

view()方法

视图模板

变量输出

对象格式输出

数组格式输出

默认值

函数

内置系统函数

md5加密

直接输出,不转义

格式化时间戳

PHP 的语法模式

总结


安装

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)}

总结

对于模板的变量传递和视图简单渲染,就到这里了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值