ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
官方文档对于自定义标签给出了两个比较不错的例子,加上 app\portal\taglib\Portal.php里面的例子,还是可以掌握的, 缺点是:没有给出大体文字说明,让初学者有些困惑,为啥不多说解释一下如何运用呢,人艰不拆啊 现在给出详细的文字说明,如何自定义一个标签。 1 首先,自定义标签 ~~~ class Demo extends TagLib{ protected $tags = [ 'cat' => ['attr' => 'skin,roar'], ]; } ~~~ 这个不用多解释,在tags数组中定义一个tag,名字叫cat,定义了两个输入属性,skin,roar。 用法为: ~~~ {demo:cat skin='black' roar='mew'} <li>{$vo.name}</li> {/demo:cat} ~~~ 2 对于volist的理解 ~~~ <volist name="数据源" id="单个数据名"> 里面的内容 </volist> ~~~ volist的name里面是数据源,id里面是单个数据名,这个是亘古不变的。 3 创建标签函数的写法为: ~~~ public function tagCat($tag, $content) { $tag['skin'];//black $tag['roar'];//mew $content;//为<li>{$vo.name}</li> } ~~~ 这里的参数也是亘古不变滴,永远是$tag和$content。 $tag里面为原先定义好的attr参数,最终数值是由入口{demo:cat skin='black' roar='mew'}带过来的。 $content就是夹在demo:cat标签中间的所有内容。 4 官方示例分析 ![](https://box.kancloud.cn/0b02244301ac133559585b94342a2e5a_774x741.png)