后台

这里的后台指整个后台管理,在此仅做后台的流程介绍、核心类解析及相关功能模块功能使用介绍,如果需要查看前端开发文档,请前往相应章节查看文档

流程介绍

首先需要知道FastAdmin的后台模块是禁用了路由功能的,因此后台的操作都是根据URL进行分段解析,例如我们请求的是

  1. https://demo.fastadmin.net/admin/

则调用的是默认控制器Index.php中的默认方法index

如果我们请求的是

  1. https://demo.fastadmin.net/admin/dashboard/index

则调用的是Dashboard.php中的index方法

框架在调用到Dashboard.php这个控制器的index方法后会自动渲染application/admin/view/dashboard/index.html这个视图文件。

如果需要修改显示的内容,则修改这个这个视图文件即可。

但我们会发现有些控制器并没有index,add,edit,del等方法,但其实这些方法都在控制器的父类中采用了traits进行引入,我们转到父类application/common/controller/Backend.php就可以看到有一行

  1. use \app\admin\library\traits\Backend.php

这一行就相当于把文件application/admin/library/traits/Backend.php中的所有方法引入到当前控制器。如果我们需要覆盖基类定义的方法,则直接在当前控制器中定义即可。

基类解析

后台的所有功能模块的控制器都是继承于application/common/controller/Backend.php这个基类控制器

在基类控制器中我们有定义一些基础属性和通用方法,首先们我看看基础属性

  1. /**
  2. * 无需登录的方法,同时也就不需要鉴权了
  3. * @var array
  4. */
  5. protected $noNeedLogin = [];
  6. /**
  7. * 无需鉴权的方法,但需要登录
  8. * @var array
  9. */
  10. protected $noNeedRight = [];
  11. /**
  12. * 布局模板
  13. * @var string
  14. */
  15. protected $layout = 'default';
  16. /**
  17. * 权限控制类
  18. * @var Auth
  19. */
  20. protected $auth = null;
  21. /**
  22. * 快速搜索时执行查找的字段
  23. */
  24. protected $searchFields = 'id';
  25. /**
  26. * 是否是关联查询
  27. */
  28. protected $relationSearch = false;
  29. /**
  30. * 是否开启数据限制
  31. * 支持auth/personal
  32. * 表示按权限判断/仅限个人
  33. * 默认为禁用,若启用请务必保证表中存在admin_id字段
  34. */
  35. protected $dataLimit = false;
  36. /**
  37. * 数据限制字段
  38. */
  39. protected $dataLimitField = 'admin_id';
  40. /**
  41. * 数据限制开启时自动填充限制字段值
  42. */
  43. protected $dataLimitFieldAutoFill = true;
  44. /**
  45. * 是否开启Validate验证
  46. */
  47. protected $modelValidate = false;
  48. /**
  49. * 是否开启模型场景验证
  50. */
  51. protected $modelSceneValidate = false;
  52. /**
  53. * Multi方法可批量修改的字段
  54. */
  55. protected $multiFields = 'status';
  56. /**
  57. * 导入文件首行类型
  58. * 支持comment/name
  59. * 表示注释或字段名
  60. */
  61. protected $importHeadType = 'comment';

其次我们来看下通用的方法

  1. /**
  2. * 加载语言文件
  3. * @param string $name
  4. */
  5. protected function loadlang($name)
  6. {
  7. }
  8. /**
  9. * 渲染配置信息
  10. * @param mixed $name 键名或数组
  11. * @param mixed $value 值
  12. */
  13. protected function assignconfig($name, $value = '')
  14. {
  15. }
  16. /**
  17. * 生成查询所需要的条件,排序方式
  18. * @param mixed $searchfields 快速查询的字段
  19. * @param boolean $relationSearch 是否关联查询
  20. * @return array
  21. */
  22. protected function buildparams($searchfields = null, $relationSearch = null)
  23. {
  24. }
  25. /**
  26. * 获取数据限制的管理员ID
  27. * 禁用数据限制时返回的是null
  28. * @return mixed
  29. */
  30. protected function getDataLimitAdminIds()
  31. {
  32. }
  33. /**
  34. * Selectpage的实现方法
  35. *
  36. * 当前方法只是一个比较通用的搜索匹配,请按需重载此方法来编写自己的搜索逻辑,$where按自己的需求写即可
  37. * 这里示例了所有的参数,所以比较复杂,实现上自己实现只需简单的几行即可
  38. *
  39. */
  40. protected function selectpage()
  41. {
  42. }

以上的属性和方法我们都可以通过在当前控制器定义来达到覆盖的目的。

功能模块

常规管理

在后台管理中一些基础配置,例如系统配置、附件管理、文件管理、数据库管理、个人配置等功能都归属到该级栏目下面

系统配置

在开发中经常会遇到一些配置信息可以在后台进行修改的功能,此时我们在系统配置中进行增改操作。系统配置中的配置项不支持删除功能,如果需要删除配置项,需要删除数据库中fa_config中相对应的行。

在系统配置中的添加一栏,我们可以自定义添加系统配置。以下是添加项的详细解释

类型介绍
类型主要是字符、文本、数字、日期时间、列表、图片、文件、复选、单选、数组等类型
分组配置所属的分组
变量名变量名,只能使用数字、字母、下划线定义。在视图中可以使用{$site.变量名调用},在PHP中可以使用config('site.变量名')调用
变量标题配置对应显示的中文名称
变量值配置项的基础值
提示信息当配置项获得焦点时提示的文字信息
校验规则校验规则使用的是nice-validator的规则,可以查看:https://validator.niceue.com/docs/core-rules.html,多个规则使用;进行分隔
扩展属性用于给生成的DOM元素添加额外的扩展属性

系统配置支持多种数据类型,下面依次做简单介绍

类型介绍
字符生成单行文本框
文本生成多行文本框
数字生成单行数字文本框
日期生成只可日期的日期选择框
时间生成输入时间的时间选择框
日期时间生成文本框且自动生成日期时间选择器
列表生成下拉列表框
列表(多)生成多选下拉列表框
图片生成单图文本框且上传或选择单图,带图片预览
图片(多)生成多图文本框且可上传或选择多张图,带图片预览
文件生成文本框且可上传或选择文件
文件(多)生成文本框且可上传或选择多个文件
复选生成复选框
单选生成单选框
数组生成一维数组输入列表且可动态添加和排序
自定义可以直接自定义元素的HTML代码
分类管理

分类模块是我们在开发中经常会使用到的一个模块,FastAdmin集成了一个简单的通用分类功能模块,我们可以进行无限级分类的录入与管理。以便于在前台功能模块开发时可以调用分类中的数据。

附件管理

附件管理可以管理后台上传的文件资源,也可以在此上传资源到服务器

附件管理中的删除只会删除数据库的记录,并不会对应的文件

当我们配置了第三方去储存插件时,附件管理中的添加将出现上传到第三方的按钮,此时我们的上传就是上传到第三方存储。

插件管理

插件管理是FastAdmin的插件的控制面板,在插件管理中可以在线免费或付费购买安装FastAdmin插件商店中的插件,也可以在插件管理中安装本地插件、配置、禁用、启用、卸载、升级插件。

在插件管理中购买付费插件时会提醒是否登录FastAdmin官网,此时如果登录的情况下,所有插件购买的记录都将保存在此账号下,如果不登录直接购买将会是以你当时的IP地址作为购买依据。

如果我们安装完插件是需要启用、刷新插件缓存、清除后台缓存才会生效。部分插件是没有后台管理菜单或前台访问页面的。