织梦自定义模型与附加表字段调用方法

想要实现织梦DedeCMS任意位置调用自定义字段,就得先了解DEDECMS自定义字段其实就是添加了个附加的表,要调用附加表的内容有list和arclist两种方法。譬如增加一个自定义字段商品的价格price

①.list调用附加表字段

1
2
3
{dede:list pagesize='5'} 
< li >< a  href = "[field:arcurl/]" >< img  src = "[field:litpic/]"  /></ a >< span >[field:price/]</ span ></ li
{/dede:list}

用list调取自定义字段的时候,一定要注意在后台建立字段的时候,前台参数那里的“使字段可以在列表的底层模板中获得”这个选项勾选,如下图。


当勾选之后,在当前的内容模型管理基本设置里的列表附加字段会自动加入字段名称,如下图。

②.arclist调用附加表字段

1
2
3
{dede:arclist row='5' addfields='price' channelid='3'} 
< li ></ a  href = "[field:arcurl/]" >< img  src = "[field:litpic/]"  /></ a >< span >[field:price/]</ span ></ li
{/dede:arclist}

要获取附加表内容,必须符合两个条件
1、指定 channelid 属性(内容模型的id值)
2、指定要获得的字段 addfields='字段1,字段'

在文章内容页面,可以直接使用{dede:field.price/}来获得价格的值。

☞ 拓展:织梦dedecms更新列表页提示Fatal error: Call to a member function GetInnerText() on a non-object in...

这个错误提示会在更新自定义模型栏目列表的时候出现,解决办法如下所示:

打开 /inculde/taglib/channel/img.lib.php文件 找到第51行代码,如图

1
2
将$innerTmp = $arcTag->GetInnerText();替换为 
   $innerTmp = ($arcTag=="") ? trim($arcTag) : trim($arcTag->GetInnerText());

保存即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值