ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 一键生成CRUD 在YznCMS中可以快速的一键生成CRUD(版本1.3.3+新增),自动生成后台的控制器、模型、视图、JS、菜单、回收站等,同时也支持使用`在线命令插件`实现本功能。 ### 注意事项: 1. 请确保你设计的表有且只有一个`主键`,不支持`复合主键`。 2. 请确保php所在的目录已经加入到系统环境变量,否则会提示找不到该命令。 下面以`yzn_test`数据表为例,打开命令行控制台进入到你的站点根目录,也就是`think`文件所在的目录,进行执行命令。 ### 常用命令 ~~~php //生成yzn_test表的CRUD php think crud -t test //生成yzn_test表的CRUD且一键生成菜单 php think crud -t test -u 1 //删除yzn_test表生成的CRUD php think crud -t test -d 1 //生成yzn_test表的CRUD且控制器生成在二级目录下 php think crud -t test -c mydir/test //删除yzn_test表生成的二级目录的CRUD php think crud -t test -c mydir/test -d 1 //生成yzn_test_log表的CRUD且生成对应的控制器为testlog php think crud -t test_log -c testlog //生成yzn_test表的CRUD且对应的模型名为testmodel php think crud -t test -m testmodel //生成yzn_test表的CRUD且生成关联模型category,外链为category_id,关联表主键为id php think crud -t test -r category -k category_id -p id //生成yzn_test表的CRUD且所有以list或data结尾的字段都生成复选框 php think crud -t test --setcheckboxsuffix=list --setcheckboxsuffix=data //生成yzn_test表的CRUD且所有以image和img结尾的字段都生成图片上传组件 php think crud -t test --imagefield=image --imagefield=img //关联多个表,参数传递时请按顺序依次传递,支持以下几个参数relation/relationmodel/relationforeignkey/relationprimarykey/relationfields/relationmode php think crud -t test --relation=category --relation=admin --relationforeignkey=category_id --relationforeignkey=admin_id //生成v_phealth_db2数据库下的yzn_test表的CRUD php think crud -t test --db=v_phealth_db2 ~~~ ### 参数介绍 ~~~sql -t, --table=TABLE [必填]表名,带不带表前缀均可 -c, --controller[=CONTROLLER] [可选]生成的控制器名,默认根据表名进行自动解析 -m, --model[=MODEL] [可选]生成的模型名,默认根据表名进行自动解析 -i, --fields[=FIELDS] [可选]生成的数据列表中可见的字段,默认是全部 -f, --force[=FORCE] [可选]是否覆盖模式,,如果目标位置已经有对应的控制器或模型会提示 -l, --local[=LOCAL] [可选]是否本地模型,默认1,置为0时,模型将生成在common模块下 -r, --relation[=RELATION] [可选]关联模型表名,带不带表前缀均可 -e, --relationmodel[=RELATIONMODEL] [可选]生成的关联模型名,默认根据表名进行自动解析 -k, --relationforeignkey[=RELATIONFOREIGNKEY] [可选]表外键,默认会识别为使用 模型_id 名称 -p, --relationprimarykey[=RELATIONPRIMARYKEY] [可选]关联模型表主键,默认会自动识别 -s, --relationfields[=RELATIONFIELDS] [可选]关联模型表显示的字段,默认是全部 -o, --relationmode[=RELATIONMODE] [可选]关联模型,hasone/belongsto/hasmany [default: "belongsto"] -d, --delete[=DELETE] [可选]删除模式,将删除之前使用CRUD命令生成的相关文件 -u, --menu[=MENU] [可选]菜单模式,生成CRUD后将继续一键生成菜单 --db[=key] [可选]多数据库支持(参数为tp5.1中配置的数据库key 在config\database.php添加数据库配置信息) --setcheckboxsuffix[=SETCHECKBOXSUFFIX] [可选]自动生成复选框的字段后缀 --enumradiosuffix[=ENUMRADIOSUFFIX] [可选]自动生成单选框的字段后缀 --imagefield[=IMAGEFIELD] [可选]自动生成图片上传组件的字段后缀 --filefield[=FILEFIELD] [可选]自动生成文件上传组件的字段后缀 --intdatesuffix[=INTDATESUFFIX] [可选]自动生成日期组件的字段后缀 --switchsuffix[=SWITCHSUFFIX] [可选]自动生成可选组件的字段后缀 --citysuffix[=CITYSUFFIX] [可选]自动生成城市选择组件的字段后缀 --selectpagesuffix[=SELECTPAGESUFFIX] [可选]自动生成Selectpage组件的字段后缀 --ignorefields[=IGNOREFIELDS] [可选]排除的字段 --editorclass[=EDITORCLASS] [可选]自动生成富文本组件的字段后缀 --headingfilterfield[=HEADINGFILTERFIELD] [可选]自动生成筛选过滤选项卡的字段,默认是status字段 --sortfield[=SORTFIELD] [可选]排序字段 ~~~ # 数据表供参考 > **表注释**和**字段注释**请务必都填写,以便生成对应字段中文,部分特殊字段需要参考下表的字段注释规则 ``` CREATE TABLE `yzn_test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `user_id` int(10) DEFAULT '0' COMMENT '会员ID', `admin_id` int(10) unsigned DEFAULT '0' COMMENT '管理员ID(单选)', `admin_ids` varchar(100) DEFAULT NULL COMMENT '管理员ID(多选)', `tags` varchar(255) DEFAULT '' COMMENT '标签', `week` enum('monday','tuesday','wednesday') DEFAULT NULL COMMENT '星期(单选):monday=星期一,tuesday=星期二,wednesday=星期三', `flag` set('hot','index','recommend') DEFAULT '' COMMENT '标志(多选):hot=热门,index=首页,recommend=推荐', `genderdata` enum('male','female') DEFAULT 'male' COMMENT '性别(单选):male=男,female=女', `hobbydata` set('music','reading','swimming') DEFAULT NULL COMMENT '爱好(多选):music=音乐,reading=读书,swimming=游泳', `title` varchar(100) DEFAULT '' COMMENT '标题', `content` text COMMENT '内容', `image` varchar(100) DEFAULT '' COMMENT '图片', `images` varchar(1500) DEFAULT '' COMMENT '图片组', `attachfile` varchar(100) DEFAULT '' COMMENT '附件', `city` varchar(100) DEFAULT '' COMMENT '省市', `json` varchar(255) DEFAULT NULL COMMENT '配置:key=名称,value=值', `multiplejson` varchar(1500) DEFAULT '' COMMENT '二维数组:title=标题,intro=介绍,author=作者,age=年龄', `price` decimal(10,2) unsigned DEFAULT '0.00' COMMENT '价格', `views` int(10) unsigned DEFAULT '0' COMMENT '点击', `workrange` varchar(100) DEFAULT '' COMMENT '时间区间', `startdate` date DEFAULT NULL COMMENT '开始日期', `activitytime` datetime DEFAULT NULL COMMENT '活动时间(datetime)', `year` year(4) DEFAULT NULL COMMENT '年', `times` time DEFAULT NULL COMMENT '时间', `refresh_time` bigint(16) DEFAULT NULL COMMENT '刷新时间', `create_time` bigint(16) DEFAULT NULL COMMENT '创建时间', `update_time` bigint(16) DEFAULT NULL COMMENT '更新时间', `delete_time` bigint(16) DEFAULT NULL COMMENT '删除时间', `weigh` int(10) DEFAULT '0' COMMENT '权重', `switch` tinyint(1) DEFAULT '0' COMMENT '开关', `status` enum('normal','hidden') DEFAULT 'normal' COMMENT '状态:hidden=禁用,normal=正常', `state` enum('0','1','2') DEFAULT '1' COMMENT '状态值:0=禁用,1=正常,2=推荐', PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='测试表'; ``` ## 根据字段类型 | 类型 | 备注 | 类型说明 | | --- | --- | --- | | int | 整型 | 自动生成type为number的文本框,步长为1 | | enum | 枚举型 | 自动生成单选下拉列表框 | | set | set型 | 自动生成多选下拉列表框 | | float | 浮点型 | 自动生成type为number的文本框,步长根据小数点位数生成 | | text | 文本型 | 自动生成textarea文本框 | | datetime | 日期时间 | 自动生成日期时间的组件 | | date | 日期型 | 自动生成日期型的组件 | | timestamp | 时间戳 | 自动生成日期时间的组件 | | varchar | 字符串 | 自动生成textarea文本框| ## 特殊字段 | 字段 | 字段名称 | 字段类型 | 字段说明 | | --- | --- | --- | --- | | user_id | 会员ID | int | 将生成选择会员的SelectPage组件,单选 | | user_ids | 会员ID集合 | varchar | 将生成选择会员的SelectPage组件,多选 | | admin_id | 管理员ID | int | 将生成选择管理员的SelectPage组件 | | admin_ids | 管理员ID集合 | varchar | 将生成选择管理员的SelectPage组件,多选 | | weigh | 权重 | int | 后台的排序字段,如果存在该字段将出现排序按钮 | | create_time | 创建时间 | int/bigint/datetime | 记录添加时间字段,不需要手动维护 | | update_time | 更新时间 | int/bigint/datetime | 记录更新时间的字段,不需要手动维护 | | delete_time | 删除时间 | int/bigint/datetime | 记录删除时间的字段,不需要手动维护,如果存在此字段将会生成回收站功能,字段默认值务必为`null` | | status | 状态字段 | enum | 列表筛选字段 | ## 以特殊字符结尾的规则 | 结尾字符 | 示例 | 类型要求 | 字段说明 | | --- | --- | --- | --- | | time | refreshtime | bigint/datetime | 识别为日期时间型数据,自动创建选择时间的组件 | | image | smallimage | varchar | 识别为图片文件,自动生成可上传图片的组件,单图 | | images | smallimages | varchar | 识别为图片文件,自动生成可上传图片的组件,多图 | | file | attachfile | varchar | 识别为普通文件,自动生成可上传文件的组件,单文件 | | files | attachfiles | varchar | 识别为普通文件,自动生成可上传文件的组件,多文件 | | avatar | miniavatar | varchar | 识别为头像,自动生成可上传图片的组件,单图 | | avatars | miniavatars | varchar | 识别为头像,自动生成可上传图片的组件,多图 | | content | maincontent | text/mediumtext/longtext | 识别为内容 | | \_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 | 识别为开关字段,自动生成开关组件,默认值`1`为`ON`,`0`为`OFF`| | range | daterange | varchar | 识别为时间区间组件,自动生成时间区间组件 | | tag | articletag | varchar | 识别为Tagsinput,自动生成标签输入组件 | | tags | articletags | varchar | 识别为Tagsinput,自动生成标签输入组件 | > 温馨提示:以list或data结尾的字段必须搭配enum或set类型才起作用 > 如果为多图或多列表字段,请务必确保字段长度足够