参考链接:https://doc.fastadmin.net/docs/index.html

虚拟域名要在安装项目数据库以前配置。

命令安装项目

强烈建议使用命令行安装,因为采用命令行安装的方式可以和 FastAdmin 随时保持更新同步。使用命令行安装要准备好 Git、Node.js、Composer、Bower 环境。

  • 安装 Git for Windows;
  • 安装 Node.js 与 cnpm,执行
cnpm install bower -g
  • 复制 php.exe 所在的目录路径追加到环境变量;
  • 安装 composer;
  • 下载 composer.phar:
php -r "copy('https://install.phpcomposer.com/installer','composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
  • 创建 composer.bat 文件:
echo @php "%~dp0composer.phar" %*>composer.bat
  • 修改 composer 全局配置:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
  • 到网站根目录,拉取项目代码:
git clone https://gitee.com/karson/fastadmin.git
  • 进入fastadmin目录,执行:
composer install
bower install

如果 bower install 执行失败,则重试运行。

  • 最后运行项目的 public 目录自动安装数据库。

命令生成数据表的CRUD(包括控制器、模型、视图、JS、语言包、菜单等)

前提:数据库中已有按规则创建的数据表(在生成CRUD时会根据字段属性、字段注释、表注释自动生成语言包、组件和排版)。具体规则见下面数据库说明。

  • 生成 fa_test 表的CRUD,会生成对应的控制器、模型、视图,不会生成菜单:php think crud -t test
  • 生成 fa_test_log 表的CRUD且生成对应的控制器为 testlog:php think crud -t test_log -c testlog
  • 生成CRUD时关联多表(具体字段规则见下面数据库说明):php think crud -t test --relation=category --relation=admin --relationforeignkey=category_id --relationforeignkey=admin_id
  • 生成 test 控制器的权限菜单:php think menu -c test
  • 生成 fa_test 表的CRUD且一键生成菜单(合并两步):php think crud -t test -u 1
  • 强制(重新)生成 fa_test 表的CRUD且一键生成菜单:php think crud -t test -u 1 --force=true
  • 一键全部重新生成所有控制器的权限菜单:php think menu -c all-controller
  • 删除 fa_test 表生成的CRUD,会删除对应的控制器、模型、视图,不会删除菜单:php think crud -t test -d 1
  • 删除 test 控制器生成的菜单:php think menu -c test -d 1

查看CRUD一键生成的参数:php think crud --help,查看权限菜单的参数:php think menu --help

管理插件

从 FastAdmin 安装已有插件

  • 安装:点击“插件管理”,点击“免费”选项卡,找到“每日签到”,点击最右边的“安装”,安装完毕后,页面左侧菜单栏会多出一项“签到管理”,此时数据库内页多出一个表fa_leesign
  • 移除:“插件管理”的“本地插件”页面有“每日签到”这一项,点击“状态”开关将其关闭,然后点击“卸载”,最后删除数据库fa_leesign

一键管理插件

  • 创建一个 myaddon 本地插件,用于开发自己的插件时使用,生成在根目录的 addons 目录:php think addon -a myaddon -c create
  • 刷新插件缓存,如果禁用启用了插件,部分文件需要刷新才会生效:php think addon -a myaddon -c refresh
  • 安装 myaddon 插件:php think addon -a myaddon -c install
  • 卸载 myaddon 插件:php think addon -a myaddon -c uninstall --force=true
  • 启用本地的 myaddon 插件:php think addon -a myaddon -c enable
  • 禁用本地的 myaddon 插件:php think addon -a myaddon -c disable

目录结构

FastAdmin项目目录
├── addons                  //插件存放目录
├── application           //应用目录
│   ├── admin             //后台管理应用模块
│   ├── api               //API应用模块
│   ├── common             //通用应用模块
│   ├── extra             //扩展配置目录
│   ├── index             //前台应用模块
│   ├── build.php
│   ├── command.php        //命令行配置
│   ├── common.php         //通用辅助函数
│   ├── config.php         //基础配置
│   ├── database.php       //数据库配置
│   ├── route.php          //路由配置
│   ├── tags.php           //行为配置
├── extend
│   └── fast               //FastAdmin扩展辅助类目录
├── public
│   ├── assets
│   │   ├── build            //打包JS、CSS的资源目录
│   │   ├── css                //CSS样式目录
│   │   ├── fonts            //字体目录
│   │   ├── img
│   │   ├── js
│   │   │   ├── backend
│   │   │   └── frontend     //后台功能模块JS文件存放目录
│   │   ├── libs            //Bower资源包位置
│   │   └── less            //Less资源目录
│   └── uploads                //上传文件目录
│   ├── index.php            //应用入口主文件
│   ├── install.php          //FastAdmin安装引导
│   ├── admin.php            //后台入口文件,强烈建议修改
│   ├── robots.txt
│   └── router.php
├── runtime                    //缓存目录
├── thinkphp                //ThinkPHP5框架核心目录
├── vendor                    //Compposer资源包位置
├── .bowerrc                //Bower目录配置文件
├── LICENSE
├── README.md
├── bower.json                //Bower前端包配置
├── build.php
├── composer.json            //Composer包配置
└── think
├── application
│   └── admin
│       ├── controller
│       │   └── Test.php        //控制器类
│       ├── lang
│       │   ├── zh-cn
│       │   │   └── test.php    //功能语言包,按需加载
│       │   └── zh-cn.php        //后台语言包,默认加载
│       ├── model
│       │   └── Test.php        //模型类
│       ├── validate
│       │   └── Test.php        //验证器类
│       └── view
│           └── test
│               ├── index.html   //列表视图
│               ├── add.html     //添加视图
│               └── edit.html    //编辑视图
└── public└── assets└── js└── backend└── test.js      //功能模块JS文件

控制器

application/common/controller/Api.php //API接口基类控制器
application/common/controller/Backend.php //后台基类控制器
application/common/controller/Frontend.php //前台基类控制器,功能和 Backend.php 类似
  • 后台控制器的 index/add/edit/del/multi/recyclebin/destroy/restore/import/selectpage 全都是可选的方法,基类的这些方法使用 traits 进行引入,具体位置在 application/admin/library/traits/Backend.php
  • 默认生成的控制器所继承的父类中有 index/add/edit/del/multi/destroy/restore/recyclebin 八个方法,因此在当前控制器中可不用编写增删改查的代码。
  • 如果需要自己控制这部分逻辑,需要将 application/admin/library/traits/Backend.php 中对应的方法复制到当前控制器,然后进行修改。

数据库的设计规则

CREATE TABLE `fa_test` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',`admin_id` int(10) NOT NULL DEFAULT '0' COMMENT '管理员ID',`category_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '分类ID(单选)',`category_ids` varchar(100) NOT NULL COMMENT '分类ID(多选)',`week` enum('monday','tuesday','wednesday') NOT NULL COMMENT '星期(单选):monday=星期一,tuesday=星期二,wednesday=星期三',`flag` set('hot','index','recommend') NOT NULL DEFAULT '' COMMENT '标志(多选):hot=热门,index=首页,recommend=推荐',`genderdata` enum('male','female') NOT NULL DEFAULT 'male' COMMENT '性别(单选):male=男,female=女',`hobbydata` set('music','reading','swimming') NOT NULL COMMENT '爱好(多选):music=音乐,reading=读书,swimming=游泳',`title` varchar(50) NOT NULL DEFAULT '' COMMENT '标题',`content` text NOT NULL COMMENT '内容',`image` varchar(100) NOT NULL DEFAULT '' COMMENT '图片',`images` varchar(1500) NOT NULL DEFAULT '' COMMENT '图片组',`attachfile` varchar(100) NOT NULL DEFAULT '' COMMENT '附件',`keywords` varchar(100) NOT NULL DEFAULT '' COMMENT '关键字',`description` varchar(255) NOT NULL DEFAULT '' COMMENT '描述',`city` varchar(100) NOT NULL DEFAULT '' COMMENT '省市',`price` float(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '价格',`views` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '点击',`startdate` date DEFAULT NULL COMMENT '开始日期',`activitytime` datetime DEFAULT NULL COMMENT '活动时间(datetime)',`year` year(4) DEFAULT NULL COMMENT '年',`times` time DEFAULT NULL COMMENT '时间',`refreshtime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '刷新时间(int)',`createtime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',`updatetime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',`weigh` int(10) NOT NULL DEFAULT '0' COMMENT '权重',`switch` tinyint(1) NOT NULL DEFAULT '0' COMMENT '开关',`status` enum('normal','hidden') NOT NULL DEFAULT 'normal' COMMENT '状态',`state` enum('0','1','2') NOT NULL DEFAULT '1' COMMENT '状态值:0=禁用,1=正常,2=推荐',PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='测试表'

根据字段类型

类型 备注 类型说明
int 整形 自动生成type为number的文本框,步长为1
enum 枚举型 自动生成单选下拉列表框
set set型 自动生成多选下拉列表框
float 浮点型 自动生成type为number的文本框,步长根据小数点位数生成
text 文本型 自动生成textarea文本框
datetime 日期时间 自动生成日期时间的组件
date 日期型 自动生成日期型的组件
timestamp 时间戳 自动生成日期时间的组件

特殊字段

字段 字段名称 字段类型 字段说明
category_id 分类ID int 将生成选择分类的下拉框,分类类型根据去掉前缀的表名,单选
category_ids 多选分类ID varchar 将生成选择分类的下拉框,分类类型根据去掉前缀的表名,多选
weigh 权重 int 后台的排序字段,如果存在该字段将出现排序按钮,可上下拖动进行排序
createtime 创建时间 int 记录添加时间字段,不需要手动维护
updatetime 更新时间 int 记录更新时间的字段,不需要手动维护

以特殊字符结尾的规则

结尾字符 示例 类型要求 字段说明
time refreshtime int 识别为日期时间型数据,自动创建选择时间的组件
image smallimage varchar 识别为图片文件,自动生成可上传图片的组件,单图
images smallimages varchar 识别为图片文件,自动生成可上传图片的组件,多图
file attachfile varchar 识别为普通文件,自动生成可上传文件的组件,单文件
files attachfiles varchar 识别为普通文件,自动生成可上传文件的组件,多文件
avatar miniavatar varchar 识别为头像,自动生成可上传图片的组件,单图
avatars miniavatars varchar 识别为头像,自动生成可上传图片的组件,多图
content maincontent text 识别为内容,自动生成富文本编辑器(需安装富文本插件)
_id user_id int/varchar 识别为关联字段,自动生成可自动完成的文本框,单选
_ids user_ids varchar 识别为关联字段,自动生成可自动完成的文本框,多选
list timelist enum 识别为列表字段,自动生成单选下拉列表
list timelist set 识别为列表字段,自动生成多选下拉列表
data hobbydata enum 识别为选项字段,自动生成单选框
data hobbydata set 识别为选项字段,自动生成复选框
switch siteswitch tinyint 识别为开头字段,自动生成开头组件

注释说明

字段 注释内容 字段类型 字段说明
status 状态 int 将生成普通语言包和普通文本框
status 状态 int 将生成普通语言包和普通文本框
status 状态 enum(‘0’,’1’,’2’) 将生成普通语言包和单选下拉列表
status 状态:0=隐藏,1=正常,2=推荐 enum(‘0’,’1’,’2’) 将生成多个语言包和单选下拉列表,且列表中的值显示为对应的文字

常见问题

  1. 表结构发生变化:如果使用 php think crud 生成过表的 CRUD,当修改了表结构类型或新增了字段,此时只有重新生成 CRUD 或自己手动修改视图文件和JS文件。
  2. 生成关联模型:建议你在设计表时遵循以下规范,category_id 字段关联对应 fa_category 表主键,company_info_id 关联对应 fa_company_info 表主键。
  3. 如果字段名为 user_id,生成的动态下拉列表会自动匹配 user/index 这个控制器方法,如果你发现CRUD后无法显示关联数据列表,请检查视图中元素 data-source 的值是否正确。

其他功能

  • 启用二级菜单功能:找到 application/config.php 文件最下方有个 multiplenav 配置,默认是 false,如果需要启用,请将 multiplenav 置为 true 即可。启用后,菜单规则中的第一级将作为一级菜单显示在顶部。我们可以在权限管理->菜单规则中额外添加一级菜单,然后再重新规划我们的菜单。

问题

  • 删除命令不能删除在二级目录下生成的控制器和视图。
  • 打包命令php think min -m all -r all(已修改 application\admin\command\Min.php 的 $nodeExec 值),打包完后找不到 build 目录。
  • 一键生成 API 文档生成后的位置。

FastAdmin 笔记相关推荐

  1. Fastadmin笔记

    一)安装 源码安装: 1.下载FastAdmin完整包解压到你本地 https://gitee.com/karson/fastadmin/attach_files 2.将你的虚拟主机绑定到/fasta ...

  2. FastAdmin 基本知识流程一栏

      fastadmin进阶 安装:出现登陆页无法显示:可能是php的gd2扩展未开启 FastAdmin 在 Nginx 中的配置 用的是AdminLTE后台模板require.js.less.Bow ...

  3. Fastadmin管理Mysql_Fastadmin笔记

    一)安装 源码安装: 1.下载FastAdmin完整包解压到你本地 2.将你的虚拟主机绑定到/fastadmin/public目录 4.按提示下载最新完整包fastadmin-2017-11-18  ...

  4. fastadmin学习笔记 03 数据查询关联搜索

    首先在控制器添加代码 下吗的false修改为true开启关联查询 /*** 是否是关联查询*/ protected $relationSearch = false; 然后在控制器下新建查看方法 把下图 ...

  5. 学习笔记-B/S - Exploits

    B/S - Exploits 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. 大纲 各类论坛/CMS框架 AEM 74CMS dedeC ...

  6. fastadmin html模板,使用fastadmin的页面异常模板

    1.效果图 2.修改tp异常页面的模板文件( /thinkphp/tpl/think_exception.tpl ),将文件中的内容全部替换成下面的内容然后保存即可(若发生报错,请注意语言包问题) $ ...

  7. php做app百度经验,fastadmin+uni-app开发记录

    许久不写代码,发现很多基础都已经忘得差不多了,感觉复习一下.写不出文档,就先把技术给练一下吧.由于我没有系统地学习过php,所以很多都是网上找的零碎的知识,可能会有错,还望指正! fastadmin采 ...

  8. 2023年1月9日:fastadmin在列表操作列区域添加按钮及控制已有按钮显示

    列表操作列区域添加按钮 buttons: [{name: 'detail',title: __('详情'),classname: 'btn btn-xs btn-primary btn-dialog' ...

  9. 【读书笔记】知易行难,多实践

    前言: 其实,我不喜欢看书,只是喜欢找答案,想通过专业的解答来解决我生活的困惑.所以,我听了很多书,也看了很多书,但看完书,没有很多的实践,导致我并不很深入在很多时候. 分享读书笔记: <高效1 ...

最新文章

  1. VMWare克隆出多个操作系统
  2. Windows10系统Python2.7通过Swig调用C++过程
  3. javascript call apply
  4. java使用websocket,并且获取HttpSession,源码分析
  5. [原创]数据库视图介绍和使用
  6. 进销存软件管理系统排名(最新版)
  7. 关于网页数据导入excel问题
  8. 使用Pycharm打包应用程序
  9. 论文阅读:Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector
  10. js ajax 401,$ .ajax请求总是401(UNAUTHORIZED)
  11. 玩冒险岛java卸载_冒险岛(经典版)卸载数据包方法
  12. 手写vue3源码——reactive, effect ,scheduler, stop 等
  13. 使用AD16画板步骤
  14. 科学计算法(机器学习)----决策树定义以相关概念
  15. 程序员必备5个编程自学网站,你都用到过吗?
  16. 页目录和页表结构---醍醐灌顶
  17. Opencv的使用小教程3——利用轮廓检测实现二维码定位
  18. 手势识别(一) - 项目概述与简单应用介绍
  19. 六、BGP在大规模网络的应用
  20. 中兴新支点linux下安装wine方法,中兴新支点安装dockqq和dockwechat

热门文章

  1. 套接字socket--概念和实例
  2. JEDEC标准 芯片测试
  3. 5G基站前传第五篇《无源波分解决方案》
  4. 和Sun一起开源(武林外传游戏外挂Java源代码) - 论坛版
  5. 校友录(alumni record)项目部署的最详细说明
  6. 动态磁盘导致无法进入Mac系统的解决办法
  7. 论文的参考文献,添加交叉引用,实现编号自动更新,及编号1无法自动更新问题解决方法!!!
  8. GEE开发2——GPP/ET数据的下载
  9. 为何有人会去搞计算机病毒,为什么会有计算机病毒呢
  10. Java—计算长方形的周长和面积(类和对象)