创建好数据表生成代码

未匹配的标注

视频地址
www.bilibili.com/video/BV1VA411p7R...

执行生成命令

对laravel标准不熟悉的请读完后面的建表规则

开发过程中数据库中已创建好数据表,通过数据表生成迁移文件+模型+控制器+列表页面+编辑页面

php artisan create:all tests

生成结果

编辑页面
列表页面

通过navicat工具快速创建数据表

建表规则

表名”tests“(laravel标准)

1. 主表使用复数形式

  • 多对多关联中间表以单数形式且以字母顺序排列,例如:menu_role而不是role_menu

表名备注”测试$softDeletes,timestamps,treeModel@belongsTo:user“(备注名$数据表类型@数据表关联). 关联关系文档

1. 备注名:使用单条数据名称

  • 数据表类型:
    • softDeletes:软删除功能,含有deleted_at字段.软删除文档
    • timestamps:自动更新创建时间,修改时间;含有created_at,updated_at字段
    • treeModel:树状结构数据,含有字段parent_id,level,left_margin,right_margin
    • noId:多对多中间表没有主键id

表主键id

1. 主键ID统一使用id字段

字段规则

1. 所有字段能设置不能为空的尽量设置默认值

  • 关联字段表名单数加”_id“,如user_id

字段备注”电子邮箱$email@sometimes|required|email|unique:tests,email“(备注名$类型@验证规则)

1. 备注名:字段名称备注

navicat建表

CREATE TABLE `tests` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `user_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用户ID$select2',
  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '名称',
  `password` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '密码$password@sometimes|required|digits_between:6,18',
  `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT '' COMMENT '电子邮箱$email@sometimes|required|email|unique:tests,email',
  `is_page` int(11) NOT NULL DEFAULT '0' COMMENT '是否为页面:0-否,1-是$radio@in:0,1',
  `status` tinyint(4) NOT NULL DEFAULT '2' COMMENT '状态:1-显示,2-不显示$select@in:1,2',  `icons` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '图标$icon@nullable|alpha_dash',
  `method` int(11) NOT NULL DEFAULT '1' COMMENT '请求方式:1-get,2-post,4-put,8-delete,16-head,32-options,64-trace,128-connect$checkbox@required|array',
  `date_at` date DEFAULT NULL COMMENT '日期$date',  `month_at` date DEFAULT NULL COMMENT '月份$month',  `time` varchar(255) NOT NULL DEFAULT '' COMMENT '时间选择器$timeSelect',
  `time_picker` varchar(255) NOT NULL DEFAULT '' COMMENT '时间到秒$timePicker',
  `color` varchar(255) NOT NULL DEFAULT '' COMMENT '颜色选择器$color',
  `switch` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '开关$switch',  `slider` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '滑块$slider',  `rate` double(10,0) unsigned NOT NULL DEFAULT '0' COMMENT '评分星星$rate',
 `num` int(11) NOT NULL DEFAULT '0' COMMENT '数字$num', `description` varchar(255) NOT NULL DEFAULT '' COMMENT '描述$textarea', `img` varchar(255) NOT NULL DEFAULT '' COMMENT '图片$upload', `ueditor` text COMMENT 'Markdown编辑器$markdown', `parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '父级ID$ztree@nullable|exists:tests,id', `level` smallint(6) NOT NULL DEFAULT '0' COMMENT '层级', `left_margin` int(11) NOT NULL DEFAULT '0' COMMENT '左边界', `right_margin` int(11) NOT NULL DEFAULT '0' COMMENT '右边界', `created_at` timestamp NULL DEFAULT NULL, `updated_at` timestamp NULL DEFAULT NULL, `deleted_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`), KEY `tests_parent_id_index` (`parent_id`), KEY `tests_left_margin_index` (`left_margin`), KEY `tests_right_margin_index` (`right_margin`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试$softDeletes,timestamps,treeModel@belongsTo:user';

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
发起讨论 查看所有版本


暂无话题~