Thinkphp6 模板引擎和标签的使用

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

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

目录

一、安装模板引擎

二、模板赋值

三、模板中运算符

四、模板中使用函数

五、原样输出

六、模板注释

七、语言包设置

八、循环

九、等于判断标签

十、变量输出

十一、文件包含

十二、条件判断

十三、资源加载

十四、资源路径替换


一、安装模板引擎

composer require topthink/think-view

二、模板赋值

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

// 模板变量赋值
View::assign('name','ThinkPHP');
View::assign('email','[email protected]');

// 或者批量赋值
View::assign([
    'name'  => 'ThinkPHP',
    'email' => '[email protected]'
]);

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

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

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

$name = 'ThinkPHP';
$email = '[email protected]';

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>

猜你喜欢

转载自blog.csdn.net/weixin_41635750/article/details/124426098