这里提供的是数据库表字段规则在你创建表时使用,当按如下的规则进行字段命名、类型设置和备注时
使用`php think crud -t 表名`生成CRUD时会自动生成对应的HTML元素和组件
## 根据字段类型
| 类型 | 备注 | 类型说明 |
| --------- | ---- | ------------------------------- |
| int | 整型 | 自动生成type为number的文本框,步长为1 |
| enum | 枚举型 | 自动生成单选下拉列表框 |
| set | set型 | 自动生成多选下拉列表框 |
| float | 浮点型 | 自动生成type为number的文本框,步长根据小数点位数生成 |
| text | 文本型 | 自动生成textarea文本框 |
| datetime | 日期时间 | 自动生成日期时间的组件 |
| date | 日期型 | 自动生成日期型的组件 |
| timestamp | 时间戳 | 自动生成日期时间的组件 |
## 特殊字段
| 字段 | 字段名称 | 字段类型 | 字段说明 |
| ------------ | ---------- | -------- | ------------------------------------------------------------ |
| category_id | 分类ID | int | 将生成选择分类的下拉框,分类类型根据去掉前缀的表名,单选 |
| category_ids | 多选分类ID | varchar | 将生成选择分类的下拉框,分类类型根据去掉前缀的表名,多选 |
| weigh | 权重 | int | 后台的排序字段,如果存在该字段将出现排序按钮,可上下拖动进行排序 |
| createtime | 创建时间 | int | 记录添加时间字段,不需要手动维护 |
| updatetime | 更新时间 | int | 记录更新时间的字段,不需要手动维护 |
| deletetime | 删除时间 | int | 记录删除时间的字段,不需要手动维护,如果存在此字段将会生成回收站功能,字段默认值务必为null |
| status | 状态字段 | enum | 列表筛选字段,如果存在此字段将启用TAB选项卡展示列表 |
## 以特殊字符结尾的规则
| 结尾字符 | 示例 | 类型要求 | 字段说明 |
| -------- | ----------- | ----------- | -------------------------------------------------- |
| time | refreshtime | int | 识别为日期时间型数据,自动创建选择时间的组件 |
| image | smallimage | varchar | 识别为图片文件,自动生成可上传图片的组件,单图 |
| images | smallimages | varchar | 识别为图片文件,自动生成可上传图片的组件,多图 |
| file | attachfile | varchar | 识别为普通文件,自动生成可上传文件的组件,单文件 |
| files | attachfiles | varchar | 识别为普通文件,自动生成可上传文件的组件,多文件 |
| avatar | miniavatar | varchar | 识别为头像,自动生成可上传图片的组件,单图 |
| avatars | miniavatars | varchar | 识别为头像,自动生成可上传图片的组件,多图 |
| content | maincontent | text | 识别为内容,自动生成富文本编辑器(需安装富文本插件) |
| _id | user_id | int/varchar | 识别为关联字段,自动生成可自动完成的文本框,单选 |
| _ids | user_ids | varchar | 识别为关联字段,自动生成可自动完成的文本框,多选 |
| list | timelist | enum | 识别为列表字段,自动生成单选下拉列表 |
| list | timelist | set | 识别为列表字段,自动生成多选下拉列表 |
| data | hobbydata | enum | 识别为选项字段,自动生成单选框 |
| data | hobbydata | set | 识别为选项字段,自动生成复选框 |
| json | configjson | varchar | 识别为键值组件,自动生成键值录入组件 |
| switch | siteswitch | tinyint | 识别为开关字段,自动生成开关组件 |
> 温馨提示:以list或data结尾的字段必须搭配enum或set类型才起作用
## 注释说明
| 字段 | 注释内容 | 字段类型 | 字段说明 |
| ------ | ------------------------- | ----------------- | ------------------------------------------------------------ |
| status | 状态 | int | 将生成普通语言包和普通文本框 |
| status | 状态 | enum(‘0’,’1’,’2’) | 将生成普通语言包和单选下拉列表,同时生成TAB选项卡 |
| status | 状态:0=隐藏,1=正常,2=推荐 | enum(‘0’,’1’,’2’) | 将生成多个语言包和单选下拉列表,同时生成TAB选项卡,且列表中的值显示为对应的文字## |
## 常见问题
1. 如果使用`php think crud`生成过表的CRUD,当修改了表结构类型或新增了字段,此时只有重新生成CRUD或自己手动修改视图文件和JS文件
2. 如果你的表需要生成关联模型,建议你在设计表时遵循以下规范,`category_id`字段关联对应`fa_category`表主键,`company_info_id`关联对应`fa_company_info`表主键
3. 如果字段名为`user_id`,生成的动态下拉列表会自动匹配`user/index`这个控制器方法,如果你发现CRUD后无法显示关联数据列表,请检查视图中元素`data-source`的值是否正确。