在使用DEDECMS模板进行开发时,调用附加表字段是一项常见需求。以下介绍两种简单的方法来实现这一目标。
方法一:通过指定channelid和addfields属性
要成功调用附加表中的内容,需满足以下两个条件:
- 1、明确指定 channelid 属性(注意:这里的channelid是指自定义模型的ID,而非栏目ID)。
- 2、指定需要获取的附加表字段,例如 addfields='字段1,字段2'。
示例代码如下:
{dede:arclist addfields='video_description,video_id' row='8' channelid='3'}
[field:video_description /] - [field:video_id /]
{/dede:arclist}
其中,addfields='video_description,video_id' 是附加表中的两个字段。除了这些指定的附加表字段外,其它底层字段如 arcurl、title 和 infos 等也能正常调用。
同样地,dede:list 标签也可以调用附加表字段。与 arclist 不同的是,list 标签无需指定 channelid,因为系统能够自动判断。调用格式如下:
{dede:list addfields='video_description,video_id' pagesize='8'}
[field:video_description /] - [field:video_id /]
{/dede:list}
注意:此方法将返回附加表中所有记录的相应字段。
方法二:通过runphp实现动态查询
如果需要更灵活的方式调用附加表内容,可以采用 runphp 方法。这种方法不仅适用于 dede:arclist 标签,也适用于其他标签。
示例代码如下:
{dede:arclist titlelen='26' row='20' 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 来获取另一个表中某条记录的内容。
以上就是关于DEDECMS附加表字段调用的详细说明。如果您有更多问题或需要进一步的帮助,请随时查阅官方文档或社区资源。