代码生成

基于swiftadmin可视化表单的强大设计,使得开发者开发插件进行代码一键CURD,提高了效率

例如,我们要为当前开发的这个工单系统,增加一个测试的数据库表,

创建数据表

-- ----------------------------
-- Table structure for sa_ceshi
-- ----------------------------
DROP TABLE IF EXISTS `sa_ceshi`;
CREATE TABLE `sa_ceshi`  (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '姓名;权栈',
  `sex` int(1) NULL DEFAULT NULL COMMENT '性别',
  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
  `hobby` set('write','game','read') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '爱好',
  `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容页',
  `age` int(11) NULL DEFAULT NULL COMMENT '年龄',
  `tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '关键词',
  `album` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '相册;多文件上传必须为text类型',
  `stars` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '星级',
  `interest` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签名',
  `week` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '星期',
  `birthday` int(11) NULL DEFAULT NULL COMMENT '生日;必须要int类型',
  `json` json NULL COMMENT '数组',
  `color` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '色彩',
  `lines` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '额度',
  `status` int(255) NULL DEFAULT NULL COMMENT '状态',
  `city` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '城市',
  `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容;内容字段必须是longtext类型',
  `update_time` int(11) NULL DEFAULT NULL COMMENT '更新时间',
  `create_time` int(11) NULL DEFAULT NULL COMMENT '创建时间',
  `delete_time` int(11) NULL DEFAULT NULL COMMENT '软删除标识',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of sa_ceshi
-- ----------------------------
INSERT INTO `sa_ceshi` VALUES (1, '张三', 1, '/upload/avatars/f8e34ec67a2a0233_100x100.jpg', 'write,read', NULL, NULL, NULL, 'a:1:{i:0;a:2:{s:3:\"src\";s:44:\"/upload/avatars/f8e34ec67a2a0233_100x100.jpg\";s:5:\"title\";s:0:\"\";}}', '2', NULL, NULL, NULL, '{\"name\": \"hehe\"}', NULL, NULL, NULL, '北戴河区', '# Markdown编辑器\n', 1657336703, 1656980177, NULL);

我们创建了以上的表结构,并且增加了一条数据;然后我们就可以创建当前表的CURD了

12.png

点击提交后,把当前的数据写入了数据库后,我们还要设计当前的表单元素,才可以生成,默认提供了两种生成表单的方案;分别是内置表单,和iframe表单

设计表单

13.png

再次点击提交,我们完成了表单设计的工作,需要注意的是,我们限制了表单字段类型为set的必须选择checkbox、json类型,必须选择JSON组件,text类型为多文件上传

数据多表关联

比如上述ceshi数据表,绑定user用户表,并且我们ceshi表里面存在user_id,那么我需要绑定模型关联的时候,

将ceshi->user_id 关联到user->id字段上,并且需要在字段显示的地方选择nickname。这样在数据表格默认展现的时候,展现出来的就是用户的昵称而不是ID

部署代码

我们完成以上工作后,就可以点击 部署 进行代码生成了;

15.png

至此,你可以在后台进行代码的逻辑编写,以及静态资源的配置;

最后更新时间:2022-12-02 17:37:101552
https://doc.swiftadmin.net/developer/56.html