# 一键生成基础版 **Repository Path**: BuZhanGuo/auto-generation-basis ## Basic Information - **Project Name**: 一键生成基础版 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-03-01 - **Last Updated**: 2022-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CURD命令大全 框架以内置快速生成CURD的命令, 包括控制器、视图、模型、JS文件。能够使开发者效率得到进一步提升。 > 备注:在进行CURD命令行之前, 请按照规范设计表结构, 请参数`表结构规范`模块说明。 # 常用命令 ~~~ # 生成ea_test_goods表的CURD php think curd -t test_goods # 生成ea_test_goods表的CURD, 文件冲突时强制覆盖 php think curd -t test_goods -f 1 # 删除ea_test_goods表的CURD php think curd -t test_goods -d 1 # 生成ea_test_goods表到到指定目录的CURD php think curd -t test_goods --dir test/index # 生成ea_test_goods表的CURD, 并关联ea_test_cate表, 并设置外键为cate_id php think curd -t test_goods -r test_cate --foreignKey=cate_id --primaryKey=id # 生成ea_test_goods表的CURD, 并关联ea_test_cate表, 并设置只显示title,image两个字段 php think curd -t test_goods -r test_cate --foreignKey=cate_id --relationOnlyFileds=title,image # 生成ea_test_goods表的CURD, 并关联ea_test_cate表, 并设置主表外键cate_id在表单的下拉选择显示的关联表的title字段 php think curd -t test_goods -r test_cate --foreignKey=cate_id --relationBindSelect=title # 生成ea_test_goods表的CURD, 并设置logo字段后缀为单图片 php think curd -t test_goods --imageFieldSuffix=logo # 生成ea_test_goods表的CURD, 并设置忽略remark, stock字段 php think curd -t test_goods --ignoreFields=remark --ignoreFields=stock ~~~ # 参数介绍 | 短参 | 参数 | 说明 | | --- | --- | --- | | \-t | \--table=VALUE | 主表名 | | \-f | \--force=VALUE | 强制覆盖模式 | | \-d | \--delete=VALUE | 删除模式 | | | \--dir=test/index | 生成目录 | | | \--checkboxFieldSuffix=VALUE | 复选框字段后缀 | | | \--radioFieldSuffix=VALUE | 单选框字段后缀 | | | \--imageFieldSuffix=VALUE | 单图片字段后缀 | | | \--imagesFieldSuffix=VALUE | 多图片字段后缀 | | | \--fileFieldSuffix=VALUE | 单文件字段后缀 | | | \--filesFieldSuffix=VALUE | 多文件字段后缀 | | | \--dateFieldSuffix=VALUE | 时间字段后缀 | | | \--switchFields=VALUE | 开关的字段 | | | \--selectFileds=VALUE | 下拉的字段 | | | \--editorFields=VALUE | 富文本的字段 | | | \--sortFields=VALUE | 排序的字段 | | | \--ignoreFields=VALUE | 忽略的字段 | | \-r | \--relationTable=VALUE | 关联表名 (可以设置关联表目录 eq: user/user) | | | \--foreignKey=VALUE | 关联外键 | | | \--primaryKey=VALUE | 关联主键 | | | \--relationOnlyFileds=VALUE | 关联模型中只显示的字段 | | | \--relationBindSelect=VALUE | 关联模型中的字段用于主表外键的表单下拉选择 | # 表结构规范 ### 命名规则`前缀 + 模块名 + 表标识` * 例如`系统`模块: * m_system_admin * m_system_config * 例如`博客`模块: * m_blog_user * m_blog_config # 字段规范 * 字段名使用`下划线风格` * 字段一定要清晰, 尽量`避免使用缩写`命名 * `create_time`、`update_time` 字段以timestamp类型保存时间信息 * `delete_time` 以int类型保存,默认值为0标识未删除,删除则为时间戳 # 特殊字段 * 默认`开关`字段: * status * 默认`忽略`字段: * update\_time * delete\_time * 默认`排序字段` * sort # 以特殊字符结尾的规则 * 默认`单图片`字段后缀: * image * logo * photo * icon * 默认`多图片`字段后缀: * images * photos * icons * 默认`单文件`字段后缀: * file * 默认`多文件`字段后缀: * files # 注释说明 * 类型和数据可以通过特殊字符进行定义, 例如:`性别 {radio} (1:男, 2:女, 0:未知)`, 代表的就是单选框, 生成数据集合为:`['1'=>'男','2'=>'女','0'=>'未知']`。 ### 字符说明 * 类型: * `{}`包起来, 例如:`{radio}` * 数据集: * `()`包起来, 例如:`(1:男, 2:女, 0:未知)` ### 类型大全 | 类型 | 说明 | 备注 | | --- | --- | --- | | text | 普通文本框 | | | image | 单图片 | | | images | 多图片 | | | file | 单文件 | | | files | 多文件 | | | date | 时间组件 | 需配合`数据集`使用,时间控件类型选择 | | editor | 富文本 | | | textarea | 普通文本 | | | select | 下拉选择 | 需配合`数据集`使用 | | switch | 开关组件 | 需配合`数据集`使用 | | checkbox | 多选框 | 需配合`数据集`使用 | | radio | 单选框 | 需配合`数据集`使用 | # 搜索器规则 * 筛选条件:用 `[]` 包起来 | 筛选类型 | 说明 | --- | --- | eq | 等于查询 | | neq | 不等于查询 | | in | 包含查询 | | like | 模糊查询 | | eq\|in | 等与或者包含 | | range | 范围查询 (搭配日期字段)| ### 完整示例 ~~~ CREATE TABLE `ea_test_goods` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `sex` int(11) DEFAULT '1' COMMENT '性别 {radio} (1:男, 2:女, 0:未知) [eq]', `checkbox` int(11) DEFAULT '1' COMMENT '测试多选 {checkbox} (1:选择1, 2:选择2, 3:选择3) [eq]', `mode` int(11) DEFAULT '1' COMMENT '购买模式 {select} (1:正常购买, 2:秒杀活动) [eq]', `cate_id` int(11) DEFAULT NULL COMMENT '分类ID {select} [eq]', `title` varchar(20) NOT NULL COMMENT '商品名称 [like]', `logo` varchar(500) DEFAULT NULL COMMENT '商品logo {image}', `images` text COMMENT '商品图片 {images} (|)', `describe` text COMMENT '商品描述', `market_price` decimal(10,2) DEFAULT '0.00' COMMENT '市场价', `discount_price` decimal(10,2) DEFAULT '0.00' COMMENT '折扣价', `sales` int(11) DEFAULT '0' COMMENT '销量', `virtual_sales` int(11) DEFAULT '0' COMMENT '虚拟销量', `stock` int(11) DEFAULT '0' COMMENT '库存', `total_stock` int(11) DEFAULT '0' COMMENT '总库存', `test_datetime` datetime DEFAULT NULL COMMENT '测试完整时间{date}(datetime)', `up_date` datetime DEFAULT NULL COMMENT '上架时间{date}(date) [range]', `sort` int(11) DEFAULT '0' COMMENT '排序', `status` tinyint(1) unsigned DEFAULT '1' COMMENT '状态 {radio} (0:禁用,1:启用) [eq]', `remark` varchar(255) DEFAULT NULL COMMENT '备注说明', `create_time` int(11) DEFAULT NULL COMMENT '创建时间', `update_time` int(11) DEFAULT NULL COMMENT '更新时间', `delete_time` int(11) DEFAULT NULL COMMENT '删除时间 [eq|in]', PRIMARY KEY (`id`), KEY `cate_id` (`cate_id`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='商品列表'; ~~~ ~~~ CREATE TABLE `ea_test_cate` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(20) NOT NULL COMMENT '分类名', `image` varchar(500) DEFAULT NULL COMMENT '分类图片 {image}', `sort` int(11) DEFAULT '0' COMMENT '排序 {sort}', `status` tinyint(1) unsigned DEFAULT '1' COMMENT '状态 {switch} (0:禁用,1:启用) [eq]', `remark` varchar(255) DEFAULT NULL COMMENT '备注说明', `create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` int(11) DEFAULT NULL COMMENT '删除时间', PRIMARY KEY (`id`), UNIQUE KEY `title` (`title`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='商品分类'; ~~~