1 ┃ TP6 模板引擎和标签的使用

Posted autofelix

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1 ┃ TP6 模板引擎和标签的使用相关的知识,希望对你有一定的参考价值。

〝 古人学问遗无力,少壮功夫老始成 〞

 在学习thinkphp框架时候,由于文档并不会特别细致的解决所有问题。对于模板标签没有太多的介绍,但是模板标签对于框架而言是非常的重要,可以增加很多的工作效率。如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示支持,谢谢各位小伙伴们。

目录

一、安装模板引擎

二、模板赋值

三、模板中运算符

四、模板中使用函数

五、原样输出

六、模板注释

七、语言包设置

八、循环

九、等于判断标签

十、变量输出

十一、文件包含

十二、条件判断

十三、资源加载

十四、资源路径替换


一、安装模板引擎

composer require topthink/think-view

二、模板赋值

  • 第一种方式,使用assign赋值
<?php
use think\\facade\\View;

// 模板变量赋值
View::assign('name','ThinkPHP');
View::assign('email','thinkphp@qq.com');

// 或者批量赋值
View::assign([
    'name'  => 'ThinkPHP',
    'email' => 'thinkphp@qq.com'
]);

// 加载模板
return View::fetch('index');
  • 第二种方式
<?php
use think\\facade\\View;

return View::fetch('index', [
    'name'  => 'ThinkPHP',
    'email' => 'thinkphp@qq.com'
]);
  • 第三种方式
<?php
use think\\facade\\View;

// 使用助手函数
return view('index', [
    'name'  => 'ThinkPHP',
    'email' => 'thinkphp@qq.com'
]);
  • 个人常见用法
<?php
use think\\facade\\View;

$name = 'ThinkPHP';
$email = 'thinkphp@qq.com';

return View::fetch('index', compact('name', 'email'));

三、模板中运算符

<div>$a+$b</div>
<div>$a-$b</div>
<div>$a*$b</div>
<div>$a/$b</div>
<div>$a%$b</div>
<div>$a++</div>
<div>++$a</div>
<div>$a--</div>
<div>--$a</div>
<div>$c ? '存在' : '不存在'</div>

四、模板中使用函数

<!-- 日期格式化 -->
<div>$time|date='Y-m-d H:i:s'</div>

<!-- 字符串转换为大写 -->
<div>$str|upper</div>

<!-- 字符串转换为小写 -->
<div>$str|lower</div>

<!-- 输出数组的第一个元素 -->
<div>$arr|first</div>

<!-- 输出数组的最后一个元素 -->
<div>$arr|last</div>

<!-- 默认值 -->
<div>$default|default="飞兔"</div>

<!-- 字符串截取 -->
<div>$str|substr=0,3</div>

<!-- md5加密 -->
<div>$str|md5</div>

<!-- 多函数调用 -->
<div>$str|lower|substr=0,3</div>

五、原样输出

  • 可以使用literal标签来防止模板标签被解析
literal
    Hello,$name!
/literal

六、模板注释

  • 注意和注释标记之间不能有空格
单行注释 格式:
/* 注释内容 */  或 // 注释内容  

多行注释 格式:
/* 这是模板
注释内容*/ 

七、语言包设置

:lang('sex')[1]

八、循环

<!-- volist循环 -->
volist name='list' id='vo'
<li> $vo.nickname</li>
/volist

<!-- foreach循环 -->
foreach list as key=>$vo 
$vo.id
/foreach

<!-- for循环 -->
for start="1" end="100" comparison="" step="步进值" name="循环变量名"
$i
/for

九、等于判断标签

eq name="name" value="1"value/eq

十、变量输出

<!-- 输出变量 -->
$name
 
<!-- 输出数组 -->
$user.user_name
$user.age
或
$user['user_name']
$user['age']
 
<!-- 输出对象 -->
$user->user_name
$user->age

<!-- 输出$_SERVER['SCRIPT_NAME']变量 -->
$Request.server.script_name
<!-- 输出$_SESSION['user_id']变量 -->
$Request.session.user_id
<!-- 输出$_GET['page']变量 -->
$Request.get.page
<!-- 输出$_COOKIE['name']变量 -->
$Request.cookie.name

<!-- 调用Request对象的controller方法 -->
$Request.controller
<!-- 调用Request对象的action方法 -->
$Request.action
<!-- 调用Request对象的host方法 -->
$Request.host
<!-- 调用Request对象的ip方法 -->
$Request.ip

<!-- 输出PHP的版本 -->
$Think.PHP_VERSION
<!-- 输出THINKPHP的版本 -->
:think\\\\App::VERSION

十一、文件包含

<!-- 包含头部模版header -->
include file="public/header" /

<!-- 包含菜单模版menu -->
include file="public/menu" /

<!-- 包含blue主题下面的menu模版 -->
include file="blue/public/menu" /

<!-- 包含多个文件 -->
include file="public/header,public/menu" / 

十二、条件判断

if ( $name == 1) OR ( $name > 100)  value1
elseif $name == 2 /value2
else / value3
/if

if strtoupper($user['name']) == 'THINKPHP' ThinkPHP
else / other Framework
/if

十三、资源加载

load href="/static/js/common.js" /
load href="/static/css/style.css" /
load href="/static/js/common.js,/static/css/style.css" /

十四、资源路径替换

  • 在view.php 的配置文件中添加
'tpl_replace_string'  =>  [
    '__STATIC__'=>'/static'
]
  • 模板中使用
<script type="text/javascript" src="__STATIC__/js/jquery.min.js"></script>
创作打卡挑战赛 赢取流量/现金/CSDN周边激励大奖

以上是关于1 ┃ TP6 模板引擎和标签的使用的主要内容,如果未能解决你的问题,请参考以下文章

TP6 assign json 给模板使用

freemarker 模板

thinkphp禁止模版标签解析

4,VTemplate模板引擎的使用--进阶篇

Spring Boot中使用模板引擎Thymeleaf

如何转义液体模板标签?