ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

EasyAdmin 二次开发实战:从零扩展一个完整的业务功能模块

EasyAdmin 二次开发实战:从零扩展一个完整的业务功能模块

EasyAdmin 二次开发实战:从零扩展一个完整的业务功能模块

【免费下载链接】easyadmin框架主要使用ThinkPHP6.0 + layui,拥有完善的权限的管理模块以及敏捷的开发方式,让你开发起来更加的舒服。项目地址: https://gitcode.com/gh_mirrors/easy/easyadmin

EasyAdmin 是一款基于 ThinkPHP6.0 + layui 的轻量级后台管理系统,内置完善的权限管理、菜单管理、操作日志与一键 CURD 生成器。本文将以「商品分类管理」为例,带你完成一次完整的 EasyAdmin 二次开发实战,从建表、生成代码到配置权限与菜单,一步步扩展出一个可直接上线的业务功能模块,非常适合后台开发新手快速上手。

为什么选择 EasyAdmin 进行后台二次开发

在做 EasyAdmin 二次开发之前,先了解它的核心优势,能帮你少走很多弯路:

  • 极速 CRUD:一条命令自动生成控制器、模型、视图和 JS 文件,告别重复造轮子
  • 注解式权限:通过@NodeAnotation注解自动管理权限节点,权限系统零手工维护
  • 组件化前端:基于 layui 深度封装表格、表单、上传、富文本等组件,开箱即用
  • 完善的扩展机制:模块化目录结构清晰,支持在 app/admin/controller/ 下随意扩展业务目录

EasyAdmin 二次开发环境准备与项目安装

二次开发的第一步是拿到项目源码。克隆仓库后安装依赖:

git clone https://gitcode.com/gh_mirrors/easy/easyadmin cd easyadmin composer install

安装完成后,导入 config/install/sql/install.sql 初始化数据库,并配置 config/database.php 中的数据库连接信息,浏览器访问后台即可完成部署。

设计业务数据表:二次开发的第一步

所有业务功能模块都从数据表开始。以「商品分类」为例,我们设计一张简单的分类表:

字段类型说明
idint主键
titlevarchar(50)分类名称
imagevarchar(255)分类图片
sortint排序
statustinyint状态 0禁用 1启用
remarkvarchar(255)备注
create_time / update_timeint时间字段
delete_timeint软删除字段

💡 提示:EasyAdmin 的模型基类 TimeModel 已内置时间字段和软删除支持,建表时加上这三个时间字段即可自动启用。

一键 CURD 生成:核心命令实战

数据表建好后,利用内置的 CURD 命令生成整套业务代码。这是本次 EasyAdmin 二次开发中最高效的一步:

php think curd -t mall_cate -c mall/Cate -m MallCate
  • -t:主表名
  • -c:控制器文件名(自动生成到 app/admin/controller/mall/)
  • -m:模型文件名(自动生成到 app/admin/model/)

命令执行后,会一次性生成以下四类文件,这正是 EasyAdmin 二次开发的核心产物:

生成文件作用
控制器继承公共控制器并复用 CURD 逻辑
模型继承 TimeModel,支持软删除
视图页面模板,自动绑定权限节点
JS 文件表格列配置、操作按钮定义

解析生成的代码:理解二次开发骨架

生成的控制器极其精简,因为所有增删改查逻辑都被封装在 app/admin/traits/Curd.php 这个 Trait 中,包含列表、添加、编辑、删除、导出、属性修改等完整方法:

class Cate extends AdminController { use Curd; public function __construct(App $app) { parent::__construct($app); $this->model = new MallCate(); } }

公共控制器 AdminController 则负责权限校验、视图初始化、搜索条件构建等通用逻辑,业务代码只需关注自身模型即可。

而前端 JS 文件负责表格展示与操作,通过ea.table.render配置列、搜索项和按钮,例如状态列自动渲染为开关组件:

{field: 'status', title: '状态', templet: ea.table.switch}

配置权限节点与菜单:让模块正式上线

代码生成后,还需两步才能让模块在后台完整可用:

  1. 更新权限节点:EasyAdmin 通过注解自动识别权限,进入后台「系统管理 → 节点管理」,点击「系统节点更新」,即可自动扫描并注册mall.cate相关的列表、添加、编辑、删除等节点,无需手工录入。
  2. 绑定后台菜单:在「菜单管理」中新增菜单,填入控制器地址与权限节点,菜单即可显示在左侧导航,配合注解权限实现按钮级显示控制。

🔒 权限校验逻辑位于 AdminController 的checkAuth()方法,支持免登录、免权限白名单配置,可在 config/admin.php 中灵活调整。

二次开发进阶技巧与常见扩展

掌握了基础流程后,以下几个 EasyAdmin 二次开发技巧能帮你快速应对真实业务场景:

  • 字段定制:在生成后的 JS 中调整列宽、搜索类型、自定义模板,图片列使用ea.table.image,时间列使用range范围搜索
  • 开关与下拉:布尔字段用templet: ea.table.switch,枚举字段配置selectList即可实现下拉筛选
  • 关联查询:CURD 命令支持-r关联表参数,配合模型关联实现主从表联动查询
  • 上传组件:视图模板中使用data-upload即可接入图片/文件上传,支持本地存储与阿里云 OSS、腾讯云 COS、七牛云等云存储
  • 表单扩展:新增字段后,只需同步修改 add.html 和 edit.html 两个表单模板

总结

通过本次实战,你已经掌握了 EasyAdmin 二次开发的核心链路:建表 → 一键 CURD → 权限节点 → 菜单绑定 → 字段定制。这套方法论适用于绝大多数业务模块的快速搭建,让开发者把精力聚焦在真正的业务逻辑上。如果你正准备用 EasyAdmin 搭建自己的后台系统,现在就动手克隆项目,跑一遍完整的二次开发流程吧!

【免费下载链接】easyadmin框架主要使用ThinkPHP6.0 + layui,拥有完善的权限的管理模块以及敏捷的开发方式,让你开发起来更加的舒服。项目地址: https://gitcode.com/gh_mirrors/easy/easyadmin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表