FastAdmin 提供了一键 CRUD 功能,可通过命令行快速生成 CRUD 代码。CRUD 代表 Create(创建)、Read(读取)、Update(更新)和 Delete(删除),是一套通用的数据操作功能。一键 CRUD 可以快速生成后台控制器、模型、视图、JS、语言包、菜单、回收站等,极大地提高了开发效率。
项目结构
在使用一键 CRUD 功能之前,先熟悉一下项目的目录结构。了解项目结构有助于你快速定位和修改生成后的代码。
FastAdmin项目目录
├── application //应用目录
│ ├── admin //后台管理应用模块
├── controller //控制器
├── lang
├── model //模型
├── validate //验证器
├── view //后台管理视图
│ ├── api //API应用模块
│ ├── common //通用应用模块
│ ├── index //前台应用模块
│ ├── common.php //通用辅助函数
│ ├── config.php //基础配置
│ ├── database.php //数据库配置
├── public //框架入口目录
│ ├── assets
│ │ ├── js
│ │ │ ├── backend //后台功能模块JS文件存放目录
│ │ │ └── frontend
上面的结构保留了关键部分,项目中需要调整的代码大部分集中在这一部分,如果需要详细了解可以到官方文档查看。https://doc.fastadmin.net/doc/construct.html
- application/admin 存放后台管理系统的核心代码,包括控制器、模型、视图、语言包、菜单等。一键 CRUD 功能主要生成与此目录相关的代码。
- application/api API 用于开发 API 接口,可供 APP、小程序、H5 等外部应用调用。
- application/database.php 数据库配置,在上线部署时一般需要修改。
代码生成
FastAdmin 提供了一系列命令,让你能够一键生成代码。例如,要生成 fa_blog 表的 CRUD:
php think crud -t blog
要生成 fa_blog 表的 CRUD 并一键生成菜单:
php think crud -t blog -u 1
在使用 phpStudy 集成环境时,如遇到报错找不到 php 命令。可以将 phpStudy 安装目录下的 Extensions → php → php7.4.3nts 目录添加到系统环境变量。
有些朋友可能觉得命令太难记,容易出错。这时,你可以使用在线命令插件。登录到系统后台,在插件管理中找到在线命令插件并安装。
安装完成后,使用一键生成 CRUD。先选择你自行创建的数据库表,如何创建后面会讲,然后点击立即执行。
第一次执行可能会提示只允许在开发环境下执行命令,这个时候你需要找到application/config.php文件,并将应用调试模式app_debug
设置为true
。
执行成功后,将会看到生成了一系列文件。
另外,还有一些选项可能会用到:
- 强制覆盖模式 之前已经生成过代码,之后对数据库字段进行调整,重新生成时需要使用强制覆盖模式。如果你对生成的文件做了改动,会被新生成的文件覆盖,因此在使用前请先保存修改过的代码。
- 自定义控制器名 一般情况下使用默认即可,但如果需要生成到层级目录中,可使用/分割;
- 删除模式 在线命令删除 CRUD 命令会失败,仍然需要使用本地命令模式。
生成菜单
选择上一步生成的控制器文件,执行命令。
执行成功后,我们就能看到左侧多了一个菜单选项。点击进入对应管理模块,可以看到页面包含了内容的增删改查等功能,以及可以看到编辑表单的不同控件类型。
页面生成的内容与数据库字段名称、类型、注释等有关。例如表格、表单标题依据注释,表单类型依据字段名称,拖拽排序控件依据是否有权重字段。
数据库表创建
在使用一键 CRUD 之前,都需要进行数据库表创建。在 phpStudy 中,你可以安装一个 SQL_Front 数据库管理工具。
安装完成后登录,就可以开始创建你的表了。下面是我刚使用的表字段。
具体分析一下:
- 表名以 fa_ 开头;
- SQL_Front 中 id 默认是以大写 I 开头的,统一改成小写;
- 标题title和描述description是 varchar 类型,以普通输入框展示;
- 内容content是个特殊结尾字段,在 FastAdmin 中以 content 结尾的字段,会以富文本编辑器显示,需安装富文本插件;
- 状态status是特殊字段,是枚举类型,该字段会显示 TAB 选项卡;
- 创建时间createtime和更新时间updatetime不需手动维护,不会出现在新增和编辑表单区域;
- 权重weigh表格排序相关,会显示拖拽排序按钮;
- 标题名称和 TAB 选项卡名称与注释相关。
通过以上介绍,相信你已经对如何使用一键 CRUD 功能有了清晰的认识。项目中会有更多不同字段,可参照官方文档。https://doc.fastadmin.net/doc/database.html