Thinkphp模板中函数的使用

Thinkphp模板中函数的使用

https://www.cnblogs.com/jingmin/p/6440673.html

1.在模板中使用php函数

   在thinkphp的html中,我们经常会遇到一些变量难以直接从php控制端直接处理,这些变量只有在模板中循环输出的时候处理比较合适,这个时候,我们就要在模板中使用函数

  1.1对输出模板使用php函数

{$data.name|md5} //把模板中的name变量进行md5加密

  把这句话翻译成php语言:

<?php echo (md5($data['name'])); ?>

  1.2函数中多个参数需要调用

    1.2.1将前面输出的变量当后面函数的第二个参数使用

{$create_time|date="y-m-d",###}

     解释:date函数传入两个参数,每个参数用逗号分割,这里第一个参数是y-m-d,第二个参数是前面要输出的create_time变量,因为该变量是第二个参数,因此需要用###标识变量位置。

翻译成php语言:

<?php echo (date("y-m-d",$create_time)); ?>

  1.2.2将前面输出的变量当后面函数的第一个参数使用

{$data.name|substr=0,3}

或者

{$data.name|substr=###,0,3}

   翻译成php语言

<?php echo (substr($data['name'],0,3)); ?>

    1.3对一个变量进行多个函数的处理

{$name|md5|strtoupper|substr=0,3}

    每个函数之间用丨符号隔开,且函数执行顺序是从左往右依次调用

或者

{:substr(strtoupper(md5($name)),0,3)}

 编译成php语言:

<?php echo (substr(strtoupper(md5($name)),0,3)); ?>

2.变量在模板中输出使用自定义函数

  在项目中,除了一些php函数,我们也可以根据自己项目的实际需求,在项目应用目录/common/function.php中,写入自己自定义的函数 

  重点说明:{ 和 $ 符号之间不能有空格,后面参数的空格就没有问题;

       ###表示模板变量本身的参数位置 ;

       支持多个函数,函数之间支持空格 ;

       支持函数屏蔽功能,在配置文件中可以配置禁止使用的函数列表 ;

       支持变量缓存功能,重复变量字串不多次解析。

  2.1自定义函数的使用

    简单的自定义函数和使用php函数基本一致。

  2.2自定义函数的高级使用   

{
   $varname|function1|function2=arg1,arg2,### }

    翻译成php代码:

<?php echo (function2(function1(arg1,arg2,$varname)); ?>

    2.3案例

我在function.php中写入一个方法

function Cate($cid){ $Cate=D('Cate'); $Cate=$Cate->where('id='.$cid)->find(); return $Cate['title']; }

在模板中调用这个自定义函数:

{
   $vo.cid|cate=###}

  我这只是举个例子,一般写在function中的方法都是项目中公共使用较多的方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101473.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • UDP协议抓包分析

    UDP协议抓包分析一、什么是UDPUDP就是一种无连接的协议。该协议用来支撑那些需要在计算机之间传输数据的网络应用,包括网络视频会议系统在内的众多客户/服务器模式的应用。二、UDP协议的特点UDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接传输服务。他也不提供报文到达确认、排序及流量控制等功能。(1)UDP是一个无连接协议,也就是传输数据之前源端口和目标端口不能建立连接。当它想传输时,就简单…

  • Redis在windows下安装过程

    Redis在windows下安装过程

    2021年10月10日
  • Linux命令练习.ziw

    Linux命令练习.ziw 2017年1月10日,星期二Linux命令练习1、统计/usr/bin/目录下的文件个数;#ls/usr/bin|wc-l判断/home/goldin目录是否有文件2、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示;#cut-d:-f7/etc/passwd|sort-u4、取出/etc/inittab文件的第6行;#…

    2022年10月12日
  • maven私库nexus2.14.1迁移到nexus3.1

    maven私库nexus2.14.1迁移到nexus3.1maven私库nexus2.14.1迁移到nexus3.1(含安装教程),亲测可用

  • ubuntu安装goland_ubuntu安装kali工具集

    ubuntu安装goland_ubuntu安装kali工具集1下载地址可以从go语言中文网下载最新的Linux包,地址如下:https://studygolang.com/dl/golang/go1.17.3.linux-amd64.tar.gzhttps://studygolang.com/dl/golang/go1.17.3.linux-amd64.tar.gz2安装进入home目录,使用wget下载子并解压,修改名字,然后创建链接(这个目的是方便后续切换golang版本的时候,只需要修改链接即可),脚本如下:cd~wgethttps

    2022年10月10日
  • mysql 数据库面试题[通俗易懂]

    mysql 数据库面试题[通俗易懂]mysql 数据库面试题

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号