Thinkphp3的手册上说的很清楚:
使用<include file="$tplName" />可以把模板放到变量里动态加载模板。
但是呢?实测不行,这个标签不解析变量。
不用等更新了,官方至今都没有补丁,而且到Thinkphp5这个问题都没解决。
解决思路:自己修改Thinkphp内核。或者曲线救国。自己修改内核的方法在此不再说明,网上有教程和帖子,目前我遇到的情况曲线救国就可以了。就是通过switch标签来实现。
<switch name="data.template">
<case value='text' break='1'><include file="sysedittext"/></case>
<case value='textarea' break='1'><include file="sysedittextarea"/></case>
<case value='editor' break='1'><include file="sysediteditor"/></case>
<case value='image' break='1'><include file="syseditimage"/></case>
<case value='album' break='1'><include file="syseditalbum"/></case>
<case value='video' break='1'><include file="syseditvideo"/></case>
<case value='videoalbum' break='1'><include file="syseditvideoalbum"/></case>
<case value='music' break='1'><include file="syseditmusic"/></case>
<case value='musicalbum' break='1'><include file="syseditmusicalbum"/></case>
<case value='file' break='1'><include file="syseditfile"/></case>
<case value='files' break='1'><include file="syseditfiles"/></case>
<case value='datetime' break='1'><include file="syseditdatetime"/></case>
<default />没有附加选项
</switch>
不可以使用php原生的include,包含进来之后模板标签不会被解析。
不过我看,以后开发过程中,改内核可能还是迟早的事。