迅睿提供可扩展的自定义字段能力:每类字段对应一个字段类型类,负责表单展示、入库格式化、取值与校验。

后台可可视化配置字段并同步表结构;业务侧通过字段类库统一渲染与处理提交数据。

组成结构

部分路径 / 入口作用
字段类型类dayrui/Fcms/Field/*.php各类型实现(命名空间 Phpcmf\Field),禁止改核心时用 My 覆盖
类型登记dayrui/Fcms/Field/Field.php返回系统可用字段类型列表(id、名称、使用范围等)
字段类库\Phpcmf\Service::L('field')加载类型、拼表单、处理 post、格式化输出
字段模型\Phpcmf\Service::M('field')字段配置入库、排序、关联表名等(对应库表如 {前缀}field
后台管理Control/Admin/Field.php增删改字段、改表结构
表单样式config/field.php后台 / 会员 / 前台表单项外层 HTML 模板
自定义扩展dayrui/My/Field/config/myfield/覆盖或新增字段类型、Diy 类脚本

内置字段类型(概览)

登记在 Field/Field.php 中的常见类型包括:

类型 id名称
Text / Textbtn / Textselect / Textarea文本、文本事件、文本选择、多行文本
Editor简化编辑器
Radio / Select / Selects / Checkbox单选、下拉单选/多选、复选
Color / Date / Time / Touchspin颜色、日期、时间、增减量
File / Files / Image单文件、多文件、图片
Group / Merge单行 / 多行分组
Linkage / Linkages联动菜单单选 / 多选
Property / Ftable / Join / Uid / Diy属性参数、填写表格、关联表、账号、自定义
Pay / Pays / Paystext购买相关字段

目录中还有如 UeditorMembers 等实现文件,可按实际登记与应用场景使用。部分类型通过 used 限制可用场景(如仅 module、form 等)。

工作流程(概念)

  1. 在后台为某业务对象(关联名 relatedname、关联 id 等)添加字段,选定类型并配置选项、存储类型与长度。

  2. 系统将字段定义写入字段表,并按需要 ALTER 业务表增加列。

  3. 展示表单时:Service::L('field') 按字段列表实例化各类型,生成输入 HTML,并用 config/field.php 中的样式包裹。

  4. 提交时:各类型解析 POST,完成校验与入库值格式化,再写入主表/附表。

  5. 读取展示时:通过字段的取值/格式化方法输出适合页面或接口的值。

调用入口

加载具体类型时,优先尝试 \My\Field\{类型} 覆盖类,再回落到 \Phpcmf\Field\{类型};应用专属类型可挂在应用命名空间下。

配置与扩展点

  • config/field.php:调整 admin / member / home 三种场景下字段行 HTML(占位符如 {name}{text}{value})。

  • config/myfield/:Diy 等自定义字段附属脚本。

  • dayrui/My/Field/:覆盖或新增字段类型类(推荐扩展方式)。

  • 勿直接改 Fcms/Field,以免升级覆盖丢失。

本文地址:https://m.xunruicms.com/doc/1484.html