热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分享好用的FastAdmin开源系统实战篇

一、前言安装篇:分享好用的FastAdmin开源系统-安装篇大多数公司都有自己内部使用的系统,让客服、运营分析数据、查看数据使用,其特点是

一、前言

        安装篇:分享好用的FastAdmin开源系统-安装篇 大多数公司都有自己内部使用的系统,让客服、运营分析数据、查看数据使用,其特点是没有复杂的业务,需要有权限控制,因此就需要一个简单方便的系统。今天和大家分享下一个PHP开源后台管理系统FastAdmin,FastAdmin非常适合中小型后台管理系统,不用二次开发就能开箱使用,适合简单业务的后台,比如有查看报表、查看日志、查看记录等需求,在我的推动下,我司目前有两个后台在使用该系统。


二、简介

        FastAdmin是一款基于ThinkPHP5+Bootstrap的快速后台开发框架。系统内置了权限控制、一键生成CRUD、一键生成控制器菜单和规则、一键生成API接口文档等功能,还有丰富的插件可以下载使用,生态方便做的挺好。那么让我们一步一步来使用它吧。


三、一键CRUD


3.1 增加数据表

        为了演示CRUD功能,我们需要一张简单的数据表,执行SQL语句创建一张数据。

CREATE TABLE `fa_teacher` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`name` char(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '老师名称',`sex` tinyint(3) NOT NULL DEFAULT '1' COMMENT '性别 1:男 2:女',`age` int(11) NOT NULL DEFAULT '0' COMMENT '年龄',`switch` tinyint(1) NOT NULL DEFAULT '1' COMMENT '开启状态 1:开启 0:关闭',`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='老师表';

创建数据表成功后,我们插入一些数据。

INSERT INTO `fastdemo`.`fa_teacher`(`id`, `name`, `sex`, `age`, `switch`, `create_time`) VALUES (1, '张三', 1, 20, 1, 1644761811);
INSERT INTO `fastdemo`.`fa_teacher`(`id`, `name`, `sex`, `age`, `switch`, `create_time`) VALUES (2, '李四', 1, 21, 1, 1644761822);
INSERT INTO `fastdemo`.`fa_teacher`(`id`, `name`, `sex`, `age`, `switch`, `create_time`) VALUES (3, '测试', 2, 22, 1, 1644761831);
INSERT INTO `fastdemo`.`fa_teacher`(`id`, `name`, `sex`, `age`, `switch`, `create_time`) VALUES (4, '王五', 1, 23, 1, 1644761844);

3.2 下载CRUD插件

        我们登录系统后台点击插件管理列表,搜索crud,点击安装,注意还需要登录下官方账户。安装成功后会在左侧菜单栏中显示“在线命令管理”,如果没有显示就清除下缓存。


3.3 执行CRUD命令

        点击左侧在线命令管理菜单,点击添加,在一键生成CRUD标签下选择我们要生成的数据表,还可以选择关联模型用来完成连接查询。可以对字段识别进行设置,我们设置完后滚动下拉,翻到最下方,点击立即执行。就能在命令管理列表中查看执行的结果了。


四、一键生成菜单

        在上一步我们一键生成CRUD后,这个时候代码已经生成了,我们来添加菜单,还是点击添加按钮,选择一键生成菜单,选择我们上一步生成的数据表名称对应的控制器,也就是Teacher.php控制器,点击立即执行按钮,就能在左侧看到老师管理列表了。

        在老师管理列表里我们可以看到之前插入的数据记录,还可以进行添加、删除、编辑、搜索功能。


五、分析源代码

        通过上图控制台查看请求的地址,调用了teacher控制器,查看源代码发现控制器里并没有实现crud,而是继承了Backend。

        Teacher.php控制器继承了Backend控制器,Backend控制器引入控制器traits下的Backend.php。

        由于traits\Backend使用了trait,trait是解决PHP单继承而准备的一种代码复用机制,其他类不用继承traits下的Backend.php,只要引用了本类,就能使用类中的方法。该类实现了基础的CRUD功能,这样就不用在每个控制器中编写重复的代码了。


六、结语

        本系统的介绍从安装到应用到这里就结束啦,其他功能大家可以自己探索,感谢阅读,我们下次再见。


推荐阅读
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 在尝试对 QQmlPropertyMap 类进行测试驱动开发时,发现其派生类中无法正常调用槽函数或 Q_INVOKABLE 方法。这可能是由于 QQmlPropertyMap 的内部实现机制导致的,需要进一步研究以找到解决方案。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
author-avatar
个信2602907025
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有