FastAdmin 开发助手
FastAdmin 是基于 ThinkPHP + Bootstrap 的极速后台开发框架。 本 Skill 提供完整的开发工作流支持,帮助开发者高效使用 FastAdmin 的命令行工具和最佳实践。
何时使用本 Skill
- 用户提到 "FastAdmin"、"ThinkPHP 后台"、"后台框架"
- 用户询问 CRUD 生成、菜单生成、权限配置
- 用户需要命令行工具参考 (
php think) - 用户询问安装、配置、部署相关问题
- 用户需要插件开发指导
- 用户遇到 FastAdmin 常见问题
核心工作流
1. 项目初始化工作流
全新安装:
# 方法1:下载完整包安装
# 访问 https://www.fastadmin.net/download.html 下载最新完整包
# 解压到站点目录,设置运行目录为 /public
# 访问 http://your-domain/install.php 完成安装
# 方法2:命令行一键安装
cd fastadmin
php think install -a 127.0.0.1 -u root -p your_password -d dbname -r fa_
环境要求:
- PHP 7.4+ (推荐 7.4,v1.7.0+ 推荐 PHP 8.0+)
- MySQL 5.6 - 8.0 (需支持 InnoDB)
- Web 服务器:Nginx (推荐) 或 Apache
- Node.js (用于前端资源打包)
2. 数据库设计规范
表命名:
- 使用
fa_前缀(可配置) - 表名使用小写 + 下划线,如
fa_user_profile - 必须有且只有一个主键,不支持复合主键
字段设计:
- 字段名使用小写 + 下划线
- 必须添加字段注释和表注释(CRUD 生成的重要依据)
- 常用字段:
id- 主键,自增createtime- 创建时间 (int)updatetime- 更新时间 (int)deletetime- 删除时间 (int, 默认 NULL,用于回收站)status- 状态 (enum/normal, hidden, deleted)weigh- 排序权重 (int)
字段后缀约定(自动生成组件):
| 后缀 | 自动生成的组件 |
|---|---|
_list, _data |
复选框 |
_image, _img |
图片上传 |
_file |
文件上传 |
_time, _date |
日期时间选择器 |
_switch |
开关组件 |
_city |
城市选择器 |
_selectpage |
SelectPage 下拉 |
_editor |
富文本编辑器 |
3. CRUD 生成工作流
标准流程:
# Step 1: 设计数据库表并添加注释
# Step 2: 生成 CRUD
php think crud -t table_name -u 1
# Step 3: 刷新后台页面查看菜单
常用 CRUD 命令:
# 基础生成
php think crud -t test # 生成 fa_test 表的 CRUD
php think crud -t test -u 1 # 生成并自动创建菜单
php think crud -t test -d 1 # 删除已生成的 CRUD
# 自定义控制器和模型名
php think crud -t test_log -c testlog # 自定义控制器名
php think crud -t test -m TestModel # 自定义模型名
# 二级目录
php think crud -t test -c mydir/test # 生成到二级目录
# 关联模型
php think crud -t test -r category -k category_id -p id
php think crud -t test --relation=category --relation=admin \
--relationforeignkey=category_id --relationforeignkey=admin_id
# 多数据库
php think crud -t test --db=db_config_key
# 指定可见字段
php think crud -t test -i "id,name,status"
# 自定义组件后缀
php think crud -t test --setcheckboxsuffix=list --imagefield=image
CRUD 生成文件清单:
application/admin/
controller/Test.php # 控制器
model/Test.php # 模型
validate/Test.php # 验证器
lang/zh-cn/test.php # 语言包
view/test/
index.html # 列表页
add.html # 添加页
edit.html # 编辑页
recyclebin.html # 回收站
public/assets/js/backend/test.js # 前端 JS
4. 菜单生成工作流
# 为指定控制器生成菜单
php think menu -c test
# 生成二级目录菜单
php think menu -c mydir/test
# 删除菜单
php think menu -c test -d 1
# 生成所有控制器的菜单(谨慎使用,先备份)
php think menu -c all-controller
5. 权限配置工作流
FastAdmin 使用基于 Auth 的权限管理系统:
核心表:
fa_admin- 管理员表fa_auth_group- 角色组表fa_auth_rule- 权限规则表fa_auth_group_access- 用户角色关联表
权限特性:
- 支持无限级父子级权限继承
- 支持单管理员多角色
- 支持管理子级数据或个人数据
- 控制器方法注释中的
@auth标签控制权限
6. 前端资源打包工作流
# 打包前后台所有资源
php think min -m all -r all
# 仅打包后台
php think min -m backend -r all
# 仅打包 JS
php think min -m all -r js
# 仅打包 CSS
php think min -m backend -r css
# 使用 uglify 压缩 JS
php think min -m backend -r js -o uglify
注意:
- 需要 Node.js 环境
app_debug=true时加载未压缩资源app_debug=false时加载压缩资源- 不要直接修改
.min.js和.min.css文件
7. API 文档生成工作流
# 生成 API 文档
php think api --force=true
# 指定域名
php think api -u https://api.example.com --force=true
# 指定输出文件
php think api -o myapi.html --force=true
# 生成指定控制器文档
php think api -r Demo --force=true
API 注释规范:
/**
* 测试API
* @ApiSector (测试分组)
* @ApiRoute (/api/test)
*/
class Test extends \app\common\controller\Api
{
/**
* 测试方法
* @ApiTitle (测试标题)
* @ApiSummary (测试描述)
* @ApiMethod (POST)
* @ApiRoute (/api/test/test)
* @ApiParams (name="id", type="integer", required=true, description="ID")
* @ApiReturn ({"code":1,"msg":"成功"})
*/
public function test($id = '')
{
$this->success("返回成功", $this->request->request());
}
}
8. 插件管理工作流
# 创建本地插件
php think addon -a myaddon -c create
# 启用插件
php think addon -a example -c enable
# 禁用插件
php think addon -a example -c disable
# 卸载插件
php think addon -a example -c uninstall
# 刷新插件缓存
php think addon -a example -c refresh
# 打包插件为 zip
php think addon -a example -c package
# 将 CRUD 文件移动到插件目录
php think addon -a example -c move
参考文档索引
| 主题 | 参考文件 | 何时查阅 |
|---|---|---|
| 完整命令行参考 | references/commands.md |
需要查看所有命令参数 |
| CRUD 生成详解 | references/crud-guide.md |
生成 CRUD 时 |
| 安装配置指南 | references/install-guide.md |
安装或部署时 |
| 插件开发指南 | references/plugin-guide.md |
开发插件时 |
常见问题速查
Q: 生成 CRUD 后菜单不显示?
A: 使用 -u 1 参数生成菜单,或手动执行 php think menu -c controller_name
Q: 关联表数据在列表不显示? A: 检查关联模型配置,建议使用在线命令行插件可视化生成
Q: 回收站功能不生效?
A: 确保表中有 deletetime 字段且默认值为 NULL
Q: 安装后提示 404? A: 检查伪静态配置,Nginx/Apache 需配置 ThinkPHP 规则
Q: 后台入口文件名是什么?
A: 安装后在 public 目录生成的随机文件名 .php
Q: 字段注释必须写吗? A: 必须! CRUD 生成依赖字段注释自动生成语言包和组件
最佳实践
- 始终添加字段注释 - 这是 CRUD 自动生成的基础
- 使用命令行生成代码 - 比手动编写快 10 倍以上
- 先设计数据库再生成代码 - 遵循数据库驱动开发模式
- 定期压缩打包资源 - 生产环境前执行
php think min - 使用版本控制 - 生成代码后及时提交 Git
- 备份数据库 - 执行
php think menu -c all-controller前备份 - 开发环境开启 debug - 方便调试,生产环境关闭
- 不要修改框架核心表 - 如 fa_user, fa_auth_rule 等