方法一:通过指定 channelid 和 addfields 属性
要获取附加表的内容,必须满足以下两个条件:- 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}
方法二:通过 SQL 查询调用附加表内容
dede:arclist 标签调用附加表内容的方法与 dede:list 标签类似,但可以通过 SQL 查询实现更复杂的功能。
示例如下:
{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}