TP6 模(mu)板基本使用

前言一:

TP5.1 文档仅做参考,因为 TP6 里,不再支持 $this 的写法

$this->assign('name', 'thinkphp');
return $this->fetch();

建议改为静态调用 use think\facade\View; 的用法

<?php
namespace app\admin\controller;

use app\BaseController;
use think\facade\View;

class Index extends BaseController
{
    public function index()
    {
        View::assign([
            'name' => 'ThinkPHP',
        ]);
        return View::fetch();
    }
}

前言二:

TP6 最新版 view 架构,已经由应用目录下创建 view 目录,提升到根目录下的 view
新旧对比图(左「新」| 右「旧」)

正文

参考资料:TP5.1 模板 官方文档

因为 TP6 还在开发中,再加上 TP6 支持自定义模板规则,所以暂时到写文为止,还没有模板的详细介绍

模板变量赋值及输出演示

Controller 下 Index.php 的 index() 方法代码 ↓

<?php
namespace app\admin\controller;

use app\BaseController;
use think\facade\View;

class Index extends BaseController
{
    public function index()
    {
        View::assign([
            //简单赋值
            'name' => 'ThinkPHP',
            //数组赋值
            'data' => ['name' => 'Cry','name2' => 'Snail'],
            //二维数组
            'list' => [
                ['name' => 'Cry'],
                ['name' => 'Snail']
            ]
        ]);
        return View::fetch();
    }
}

对应的 HTML 模板代码 ↓

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
简单赋值调用
<!--litera 是用来原样输出的-->
{literal}
    模板输出 {$name}
{/literal}
<br>
{$name}
<hr>

数组赋值调用
{literal}
    模板输出 {$data.name}/{$data.name2}
{/literal}
<br>
{$data.name}/{$data.name2}
<hr>

二维数组循环 两种方式 foreach | volist <br>

foreach 模板使用 <br>
{literal}
    {foreach $list as $key=>$vo }<br>
        {$vo.name}<br>
    {/foreach}<br>
{/literal}
<br>
foreach 的 key 从 0 起始 <br>
{foreach $list as $key=>$vo }
    {$key} >> {$vo.name}<br>
{/foreach}
<hr>

volist 模板使用 <br>
{literal}
    {volist name='list' id='vo' k='i' }<br>
        {$vo.name}<br>
    {/volist}<br>
{/literal}
<br>
volist 的 key 从 1 起始 <br>
{volist name='list' id='vo' k='i' }
    {$i} >> {$vo.name}<br>
{/volist}

<hr>
使用函数 {literal} {:函数名} {/literal}<br>
使用 MD5() 函数加密 $data.name <br>
如 {literal} {:MD5($data.name)} / {$data.name | md5} {/literal} <br>
加密后 {:MD5($data.name)} / {$data.name | md5}
<hr>
默认值 default <br>
{literal} {$data.names|default="没有字符串的时候出现我"} {/literal} <br>
{$data.names|default="没有字符串的时候出现我"}

</body>
</html>

输出图 ↓

内置标签

参考资料 :TP5.1 内置标签 官方文档
自由扩展😂😂😂