以前用织梦DEDECMS做二次开发时获取附加表字段内容都是通过runphp执行SQL查询获得,最近看了看手册,发现一个非常简便的方法。
用arclist调用于附加表字段的方法:
方法一:
要获取附加表内容,必须符合两个条件
1、指定 channelid 属性(注意:channelid不是栏目id,而是自定义模型的id!)
2、指定要获得的从表字段:addfields=’字段1,字段’
如:
{dede:arclist addfields=’video_descriptiona N x S,video_id’ row=’8′ channelid=’3′}
[field:video_description /] – [field:video_id /]
{/dede:arclist}
其中addfields=’vi9 + } k D t o r ]deo_description,video_id’是附加表中的两个字段。除指定的附$ N # ? ? c } {加表字段外,其它底层字段如arcurl,title,infos等均能正常调用。
同样,dede:list标签也可调取附加表字段,和are + j D Eclist不同的是不用h : 4 d g 6 [ [ ,指定channelid,因为系统能自动判断。
调用格式如下:
{dede:list addfields=’video_description,video_id@ \ T’ pagesize=’8′}
[field:video_description /] – [field:video_id /]
{/deS V K J T ] Wde:listv ` D H i T M / Y}
注意:取出l w *的是附加表中所有记录的相应字段。
方法二:
DedeCms在dede:arclist标签如何调用附加- = e & d K , e表内容(其他标签一样适用)
代码如下:
{dede:arclist titlelen='26' row='20' ordY - 9 c q T rerby='id'} [field:id runphp="yes"] $dsql = new DedeSql(false); $a="SELECT * FROM dede_addongame_tg where aid=@me"; $arcRow = $dsql->GetOne($a~ j ) A ] B F `); @me='url="% q & o b T'.$arcRow[sptype].'" leixing="'.$arcRow[model]; [/field:id] {/dede:arclib = v 4 a # / Lst}
可以根据7 , ) X C # N x列表中每一条记录的不同id来获取另外一个表中某条记录的内容。