0

0

DedeCMS数据模型如何创建?自定义字段怎么添加?

畫卷琴夢

畫卷琴夢

发布时间:2025-09-09 09:45:02

|

267人浏览过

|

来源于php中文网

原创

创建DedeCMS数据模型需进入“内容模型管理”添加新模型并配置表名、名称等信息,随后通过“管理字段”添加自定义字段,选择合适的数据类型如varchar、int、img等以适配不同内容需求;自定义模型相比默认模型具有更高的数据独立性、管理清晰度和模板调用便利性,适用于多类型、差异化内容的网站结构;在前台模板中调用自定义字段时,需在arclist标签中使用addfields属性声明字段,并通过[field:字段名/]输出内容,图片、多图、复选框等复杂类型需结合HTML标签或PHP代码解析处理,确保数据正确展示。

dedecms数据模型如何创建?自定义字段怎么添加?

DedeCMS中创建数据模型和添加自定义字段,核心操作在于通过后台的“核心”或“模块”菜单进入“内容模型管理”,在这里完成模型的增删改以及字段的配置。这过程说起来简单,但其实涉及到对内容结构化的理解,以及如何选择合适的字段类型来承载你的数据。搞清楚这些,后续的内容管理和模板调用才能顺畅。

解决方案

要创建DedeCMS数据模型和添加自定义字段,你可以按照以下步骤操作,这套流程基本上涵盖了从无到有的整个过程:

首先,登录你的DedeCMS后台。

1. 创建新的数据模型: 进入后台后,找到左侧菜单栏的“核心”或“模块”选项(具体看你的DedeCMS版本,早期版本多在“核心”,新版可能在“模块”下)。 点击“内容模型管理”。 你会看到一个列表,展示了当前系统已有的内容模型,比如文章、图片、软件等。 点击页面上方的“增加新模型”按钮。 在新模型创建页面,你需要填写几个关键信息:

  • 模型名称: 这是一个给人看的名称,比如“产品展示”、“案例分享”。
  • 模型表名: 这个非常重要,是数据库中实际的表名。DedeCMS通常会强制你使用
    dede_addon_
    作为前缀,后面跟着你自定义的表名,比如
    dede_addon_product
    。记住,表名只能是小写字母和数字,不能有特殊字符。
  • 描述: 简单说明这个模型是用来干什么的。
  • 是否启用: 勾选后,这个模型才能被使用。
  • 是否主表: 通常自定义模型都是作为副表存在的,所以这里一般不勾选。除非你真的想构建一个全新的内容体系,但那会复杂很多。 填写完毕后,点击“提交”按钮。这样,一个新的数据模型就创建好了。

2. 为数据模型添加自定义字段: 回到“内容模型管理”页面,找到你刚刚创建或需要编辑的那个数据模型。 在模型名称的右侧,点击“管理字段”链接。 进入字段管理页面后,你会看到当前模型已有的字段(比如

aid
,
typeid
,
title
等,这些是系统自带的)。 点击页面上方的“增加字段”按钮。 在新字段添加页面,你需要详细配置这个字段:

  • 字段名称: 数据库字段名,同样只能是小写字母和数字,不能有特殊字符,比如
    product_price
    case_description
  • 字段提示: 这是在后台发布内容时,给编辑人员看的提示,比如“产品价格”、“案例详细描述”。
  • 数据类型: 这是核心,选择最符合你数据存储需求的数据类型。比如,文本用
    varchar
    text
    ,数字用
    int
    或 `
    decimal
    ,图片用
    img
    ,多选框用
    checkbox
    等。
  • 字段长度: 根据数据类型设置,比如
    varchar(255)
  • 默认值: 如果字段没有输入内容,会使用的默认值。
  • 是否必填: 勾选后,发布内容时该字段必须填写。
  • 表单显示模式: 决定这个字段在后台发布页面如何展示,比如单行文本、多行文本、图片上传、下拉菜单等。
  • 字段属性: 比如是否允许HTML、是否前台显示等,根据需要勾选。 配置完成后,点击“提交”按钮。重复这个过程,为你的模型添加所有需要的自定义字段。

完成这些步骤后,你就可以在DedeCMS后台通过“内容管理”菜单,选择你新建的模型来发布内容了。

DedeCMS自定义数据模型与默认模型的区别在哪里?为什么要创建自定义模型?

说实话,DedeCMS的默认模型,也就是“文章”、“图片”、“软件”这些,它们固然能满足大部分基础内容发布的需求,但一旦你的网站内容类型变得多元化,比如要展示产品、服务案例、招聘信息,甚至是更复杂的课程体系,你就会发现默认模型有点捉襟见肘了。

区别在哪? 最核心的区别在于数据结构的灵活性。默认模型有它一套固定的字段,比如文章模型就自带了标题、作者、来源、内容、缩略图这些。你当然可以在文章模型里添加自定义字段来适配产品信息,比如“产品价格”、“产品型号”。但这样一来,你发布“文章”和发布“产品”就都挤在同一个内容模型里了。这就像你把衣服、鞋子、锅碗瓢盆都塞在一个抽屉里,虽然能塞下,但找起来会很麻烦,管理起来也混乱。

为什么要创建自定义模型? 对我而言,创建自定义模型主要有几个非常实际的好处:

  1. 数据独立性和清晰度: 每个内容类型都有自己独立的数据库表和字段集。产品有产品的字段,案例有案例的字段。这样数据结构一目了然,管理起来逻辑清晰,查找、修改特定类型的内容也更方便。
  2. 模板开发的便利性: 当你的数据结构清晰后,前端模板的开发也会变得异常简单。你不需要在
    arclist
    标签里写一堆
    if else
    来判断当前内容是不是产品,然后去调用产品特有的字段。每个模型都有对应的模板,各司其职。
  3. 避免数据冗余和无效字段: 如果都在文章模型里添加字段,那么发布一篇文章时,那些“产品价格”、“产品型号”字段就成了无效的,但它们依然存在于数据库中。自定义模型则能确保每个模型只包含它真正需要的字段。
  4. 权限管理更精细: 有时候你可能希望某个编辑只能发布“产品”,而另一个编辑只能发布“新闻”。自定义模型能让你更细致地进行后台权限分配。

所以,当你的网站内容需要高度定制化,或者有多种差异很大的内容类型时,自定义模型几乎是DedeCMS的必选项。这不仅仅是为了好看,更是为了网站的长期稳定运行和高效管理。

在DedeCMS中添加自定义字段时,有哪些常见的数据类型和它们的应用场景?

选择正确的数据类型是添加自定义字段时最关键的一步,这直接影响到数据存储的效率、完整性以及后续的查询和展示。我见过不少人图省事,所有文本都用

text
,结果数据库里一堆不必要的长字符串,或者图片路径也存成
varchar
,导致调用时还得手动拼
@@##@@
标签。这里我列举一些常见的DedeCMS自定义字段数据类型及其应用场景:

  • 单行文本 (varchar):

    • 应用场景: 最常用的类型。适用于存储简短的文本信息,比如:产品型号、作者姓名、联系电话、URL链接、简短的标题、关键词等。
    • 特点: 需要设置字段长度,比如
      varchar(255)
      。效率高,适合索引。
  • 多行文本 (text):

    • 应用场景: 存储较长的纯文本内容,不带格式。比如:产品简介、案例描述、用户留言、不含HTML的文章内容摘要。
    • 特点: 长度理论上无限制(受数据库本身限制),但不能直接解析HTML标签。
  • HTML文本 (htmltext):

    • 应用场景: 存储富文本内容,需要使用WYSIWYG编辑器。比如:产品详细介绍、案例正文、新闻稿件、任何需要排版、插入图片和链接的内容。
    • 特点: 后台会提供一个富文本编辑器,方便用户编辑带有格式的内容。
  • 整数 (int):

    • 应用场景: 存储整数值。比如:产品库存数量、文章阅读量、排序权重、年份、价格(如果不需要小数)。
    • 特点: 需要设置长度,比如
      int(10)
  • 小数 (decimal):

    • 应用场景: 存储带有小数点的数值。比如:产品价格、评分、重量、尺寸。
    • 特点: 需要设置总位数和小数位数,如
      decimal(10,2)
      表示总共10位,其中2位是小数。这比用
      float
      double
      更精确,尤其在涉及货时。
  • 日期时间 (datetime):

    • 应用场景: 存储日期和时间。比如:活动开始时间、产品发布日期、到期时间。
    • 特点: 后台通常会提供日期时间选择器
  • 图片 (img):

    • 应用场景: 单张图片上传。比如:产品主图、案例缩略图、作者头像。
    • 特点: 上传后存储图片路径,调用时需要手动拼接
      @@##@@
      标签。
  • 多图片 (images):

    • 应用场景: 允许多张图片上传。比如:产品图集、案例图片画廊。
    • 特点: 通常会存储一个图片路径的列表,调用时需要循环处理。DedeCMS自带的这个多图上传功能,在模板里调用起来会稍微复杂一点,可能需要借助
      php
      标签来解析。
  • 文件 (file):

    • 应用场景: 单个文件上传。比如:产品说明书PDF、软件下载包、附件。
    • 特点: 存储文件路径。
  • 下拉菜单 (select):

    PicWish
    PicWish

    推荐!专业的AI抠图修图,支持格式转化

    下载
    • 应用场景: 提供预设选项供用户选择。比如:产品分类、状态(上架/下架)、颜色、尺寸。
    • 特点: 需要在后台配置选项值,通常是
      值=显示文本
      的格式。
  • 单选按钮 (radio):

    • 应用场景: 提供一组选项,用户只能选择其中一个。比如:是否推荐(是/否)、性别。
    • 特点: 类似下拉菜单,但界面表现不同。
  • 复选框 (checkbox):

    • 应用场景: 提供一组选项,用户可以选择一个或多个。比如:产品特性(防水、防震、高像素)、服务范围。
    • 特点: 多个选项的值通常会以逗号分隔或序列化形式存储,调用时需要解析。

选择合适的字段类型,不仅能让你的数据存储更规范,也能在后续的模板开发和数据维护中省去很多麻烦。

如何在DedeCMS前台模板中调用自定义数据模型的字段内容?

在DedeCMS前台模板中调用自定义数据模型的字段内容,是实现动态展示的关键一步。这部分操作,说白了就是利用DedeCMS的标签库来“抓取”数据库里对应字段的值。不过,不同的字段类型,以及在不同的标签(比如

arclist
archives
)里调用,方法上会有些许差异。

最常见的情况,你会在

arclist
标签里循环调用文章列表,或者在
archives
标签里显示单篇文章的详细内容。

1. 在

arclist
标签中调用自定义字段:
arclist
标签是DedeCMS里最常用的列表循环标签。要让它能识别并输出自定义字段,你需要在
addfields
属性中明确指定这些字段。

{dede:arclist typeid='1' row='10' addfields='product_price,product_image,product_feature'}
    
  • [field:title /]

    价格: [field:product_price /] 元

    @@##@@

    特点: [field:product_feature /]

  • {/dede:arclist}

    说明:

    • addfields='product_price,product_image,product_feature'
      :这里列出了你希望在循环中调用的自定义字段的名称,用逗号分隔。
    • [field:product_price /]
      :这是最基本的调用方式,直接输出字段值。适用于
      varchar
      int
      decimal
      text
      datetime
      等字段。
    • [field:product_image /]
      :图片字段通常只输出图片路径,所以你需要用
      @@##@@
      标签把它包起来。
    • [field:product_feature /]
      :对于
      checkbox
      select
      字段,如果存储的是多个值(如逗号分隔),这里会直接输出原始值。如果你需要显示对应的文本,可能需要写一些
      php
      代码进行转换,或者利用DedeCMS的一些特定函数(如果字段类型在DedeCMS内部有特殊处理)。

    2. 在

    archives
    标签中调用自定义字段(单页内容):
    archives
    标签通常用于显示文章的详细页面内容。它默认就能获取到所有自定义字段。

    {dede:archives row='1' id='[field:id /]'}
        

    [field:title /]

    发布时间: [field:pubdate function="MyDate('Y-m-d H:i',@me)" /]

    产品型号: [field:product_model /]

    产品价格: [field:product_price /] 元

    详细描述: [field:product_description /]

    @@##@@ {dede:php} $img_list = explode(',', @me->fields['product_gallery']); // 假设多图字段名为 product_gallery foreach($img_list as $img_url){ if(!empty($img_url)){ echo "@@##@@"; } } {/dede:php}
    [field:product_detail_html /]
    {/dede:archives}

    说明:

    • [field:product_model /]
      :直接调用字段名即可。
    • [field:product_main_image /]
      :同样需要
      @@##@@
      标签包裹。
    • [field:product_detail_html /]
      :HTML文本字段会直接输出带有格式的内容。
    • 关于多图字段(images)或复选框(checkbox)字段的调用: 这类字段通常在数据库中存储的是一个序列化字符串或者逗号分隔的字符串。DedeCMS的
      [field:fieldname /]
      标签默认只会输出原始字符串。如果你想以更友好的方式展示,比如循环显示多张图片,或者把复选框的值转换成对应的文本,你就需要借助
      {dede:php}
      标签,在模板中编写一些PHP代码来解析这些数据。上面示例中的多图调用就是一例。

    调用自定义字段,核心就是

    [field:你的字段名 /]
    ,但在实际应用中,特别是处理图片、多图、文件、多选框这类字段时,你可能需要结合HTML标签、CSS样式,甚至一些简单的PHP逻辑来达到你想要的展示效果。这块是DedeCMS模板开发中相对灵活但也容易“卡壳”的地方,多实践、多查看DedeCMS官方文档和社区讨论,会帮你少走很多弯路。

    DedeCMS数据模型如何创建?自定义字段怎么添加?DedeCMS数据模型如何创建?自定义字段怎么添加?DedeCMS数据模型如何创建?自定义字段怎么添加?[field:title /]DedeCMS数据模型如何创建?自定义字段怎么添加?[field:title /]图片DedeCMS数据模型如何创建?自定义字段怎么添加?

    相关专题

    更多
    php文件怎么打开
    php文件怎么打开

    打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

    2545

    2023.09.01

    php怎么取出数组的前几个元素
    php怎么取出数组的前几个元素

    取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

    1612

    2023.10.11

    php反序列化失败怎么办
    php反序列化失败怎么办

    php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

    1501

    2023.10.11

    php怎么连接mssql数据库
    php怎么连接mssql数据库

    连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

    952

    2023.10.23

    php连接mssql数据库的方法
    php连接mssql数据库的方法

    php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

    1417

    2023.10.23

    html怎么上传
    html怎么上传

    html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

    1234

    2023.11.03

    PHP出现乱码怎么解决
    PHP出现乱码怎么解决

    PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

    1446

    2023.11.09

    php文件怎么在手机上打开
    php文件怎么在手机上打开

    php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

    1306

    2023.11.13

    C++ 单元测试与代码质量保障
    C++ 单元测试与代码质量保障

    本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

    3

    2026.01.16

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Sass 教程
    Sass 教程

    共14课时 | 0.8万人学习

    Bootstrap 5教程
    Bootstrap 5教程

    共46课时 | 2.9万人学习

    CSS教程
    CSS教程

    共754课时 | 19.2万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号