迅睿提供可扩展的自定义字段能力:每类字段对应一个字段类型类,负责表单展示、入库格式化、取值与校验。
后台可可视化配置字段并同步表结构;业务侧通过字段类库统一渲染与处理提交数据。
| 部分 | 路径 / 入口 | 作用 |
|---|---|---|
| 字段类型类 | 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 | 购买相关字段 |
目录中还有如 Ueditor、Members 等实现文件,可按实际登记与应用场景使用。部分类型通过 used 限制可用场景(如仅 module、form 等)。
在后台为某业务对象(关联名 relatedname、关联 id 等)添加字段,选定类型并配置选项、存储类型与长度。
系统将字段定义写入字段表,并按需要 ALTER 业务表增加列。
展示表单时:Service::L('field') 按字段列表实例化各类型,生成输入 HTML,并用 config/field.php 中的样式包裹。
提交时:各类型解析 POST,完成校验与入库值格式化,再写入主表/附表。
读取展示时:通过字段的取值/格式化方法输出适合页面或接口的值。
加载具体类型时,优先尝试 \My\Field\{类型} 覆盖类,再回落到 \Phpcmf\Field\{类型};应用专属类型可挂在应用命名空间下。
config/field.php:调整 admin / member / home 三种场景下字段行 HTML(占位符如 {name}、{text}、{value})。
config/myfield/:Diy 等自定义字段附属脚本。
dayrui/My/Field/:覆盖或新增字段类型类(推荐扩展方式)。
勿直接改 Fcms/Field,以免升级覆盖丢失。