这篇文章主要介绍解析ThinkPHP5.1自定义标签怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
近来有项目需要用的自定义的标签,TP使用的是5.1,各位要注意,5.1较5.0在目录结构和程序上有较大的改动。注意自己的版本。下面进入正题。
一、创建标签函数文件
在模型目录下创建目录tabLib,在目录里创建一个Cms。php
namespace 应用\ cms \ tagLib; use 认为\分贝; use 认为\ \ TagLib模板; class Cms  extends TagLib { ,,,protected tags 美元;=,( ,,,,,,,//标签定义:,attr 属性列表,close 是否闭合(0或1,默认1),别名标签别名,层次嵌套层次 ,,,,,,,& # 39;列出了# 39;,=祝辞,[& # 39;attr # 39;,=祝辞,& # 39;num,秩序,那种# 39;], ,,,); ,,,//,当不使用的内容的时候,闭合标签没有效果 ,,,//,修改过此文件后,需要改动下模板的内容,否则模板有缓存不会执行新的内容。 ,,,public function 标记(标签,内容美元){ ,,,,,,,cateID 美元;=,美元标签(& # 39;cate_id& # 39;];,//栏目ID ,,,,,,,num 美元;,,,=,美元标签(& # 39;num # 39;];,//数量 ,,,,,,,order 美元;,=,输入($标签(& # 39;订单# 39;]);,//排序方式 ,,,,,,,type 美元;=,cateID美元; ,,,,,,,name 美元;=,美元标签(& # 39;名字# 39;); ,,,,,,,tableName 美元;=,& # 39;table_name # 39;; ,,,,,,,parse 美元;=,& # 39;& lt; ? php 美元地图=[];& # 39;; ,,,,,,,parse 美元。=,& # 39;__LIST__ 美元;=,Db:名称(& # 39;。美元的表# 39;公司)→在((“cate_id"=祝辞& # 39;只cateID 美元;强生# 39;]) ,,,,,,,,,,,→限制(& # 39;。美元num # 39;公司) ,,,,,,,,,,,→选择();,在& # 39;; ,,,,,,,parse 美元。=,& # 39;{volist 名称=癬_LIST__", id=? # 39;只name 美元;强生# 39;“}& # 39;; ,,,,,,,parse 美元。=,美元的内容; ,,,,,,,parse 美元。=,“{/volist}“; ,,,,,,,return $解析; ,,,}
在开发中遇到疑惑:
1。上面的标记列表函数对应保护标签中美元的标签定义,大小写要注意,否则是找不到函数的。
2。美元解析字符中全部为组装的字符串,该字符串会被TP的模板标签再解析一次,所以在里面可以使用TP原有的标签或原生的PHP语句。但是不可以把外面的数组或对象做为参数传入美元参数中,要知道他只是一个用来组装的字符串。请注意__LIST__美元这个变量的使用,要想从数据库中读取数据,必须写完整的PHP代码,不可以在外面执行完查询,然后把查询后的列表做为变量传入。
二,在模板配置信息中加载此标签函数
在模块cms/config/模板。php中加入一句:& # 39;taglib_pre_load& # 39;=比;& # 39;应用\ cms \ tagLib \ cms # 39;,
如果你没有此文件,可以在根目录里的配置目录下,复制一份模板放到cms/配置目录下。
三,在模板中使用标签。
,,{cms: lists name=皉ow", num=?0“, cate_id=?”,订单=?”;} ,,,,,,,& lt; li> {$ row.title} & lt;/li> ,,,{/cms:列表}
名称,num, cate_id等属性会作为标记的第一个参数美元标签传入。而{cms:列出}和{$/cms:列表}之间的内容,会作为一个完整的字符串内容传美元入标记列表的第二个参数。
注意:这里分闭合标签和非闭合标签,如果是闭合标签,则必须在(一)中使用的内容,如果是非闭合标签则可以不用。如果你不使用内容变量,则闭合的标签}{/cms:列表会被原样输出,不会进行解析。
暂时有这么多的困惑,关于分页列表的问题还在研究,研究完了再补充上来。
补充:在标记中不要对标签[]美元数组中获取到的数据进行数据类型转换,因为当传过来的是一个变量时,这个变量不会生效! !所以在这里使用intval中(标签(num)美元)是不对的。
以上是“解析ThinkPHP5.1自定义标签怎么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!