织梦dede:arclist、dede:list获取附加表字段的方法

2017-03-27 20:27:45 dedecms
方法一:
要获取附加表内容必须符合两个条件
1、指定 channelid 属性(注意channelid不是栏目ID而是自定义模型的ID)
2、指定要获得的从表字段 addfields='字段,字段'
示例:
{dede:arclist addfields='cmsjzy1,cmsjzy2' row='6' channelid='1'}
[field:cmsjzy1 /] – [field:cmsjzy2 /]
{/dede:arclist}
解析:
其中 addfields='cmsjzy1,cmsjzy2' 是附加表中的两个字段,除指定的附加表字段外其它底层字段如 arcurl、title、infos 等均能正常调用

同样 dede:list 标签也可以调取附加表字段,和 arclist 不同的是 list 不用指定 channelid ,因为系统会自动判断
示例:
{dede:list addfields='cmsjzy1,cmsjzy2' pagesize='6'}
[field:cmsjzy1 /] – [field:cmsjzy2 /]
{/dede:list}
注意:
取出的是附加表中所有记录的相应字段

方法二:
dede:arclist标签调用附加表内容的方法与dede:list标签一样
示例:
{dede:arclist titlelen='33' row='6' orderby='id'}
[field:id runphp=yes]
$dsql = new DedeSql(false);
$a=SELECT * FROM dede_addongame_tg where aid=@me;
$arcRow = $dsql>GetOne($a);
@me=url=$arcRow[sptype] leixing=$arcRow[model];
[/field:id]
{/dede:arclist}
解析:
可以根据列表中每一条记录的不同id来获取另外一个表中某条记录的内容