Owl Admin 的 CRUD 功能基于 Laravel 的 Resource Controller 模式,采用分层架构设计:
核心特性:
框架在 Slowlyo\OwlAdmin\Controllers\AdminController
中实现了完整的 CRUD 方法:
方法 | HTTP 方法 | 路由模式 | 功能描述 | 返回内容 |
---|---|---|---|---|
index() | GET | /resource | 列表页面构建 & 数据获取 | 页面结构 或 列表数据 |
create() | GET | /resource/create | 新增页面构建 | 新增页面结构 |
store() | POST | /resource | 新增数据保存 | 操作结果响应 |
show() | GET | /resource/{id} | 详情页面构建 & 数据获取 | 页面结构 或 详情数据 |
edit() | GET | /resource/{id}/edit | 编辑页面构建 & 数据回显 | 页面结构 或 编辑数据 |
update() | PUT/PATCH | /resource/{id} | 编辑数据保存 | 操作结果响应 |
destroy() | DELETE | /resource/{id} | 删除数据 | 操作结果响应 |
控制器通过 _action
参数实现一个方法处理多种请求:
支持的动作类型:
getData
- 获取数据export
- 导出数据quickEdit
- 快速编辑quickEditItem
- 快速编辑单项控制器需要实现以下抽象方法来构建页面:
控制器通过 serviceName
属性自动注入对应的服务实例:
AdminService 提供了完整的数据操作方法:
方法分类 | 方法名称 | 功能描述 | 返回类型 |
---|---|---|---|
查询 | list() | 获取分页列表数据 | array |
listQuery() | 构建列表查询条件 | Builder | |
getDetail($id) | 获取详情数据 | Model | |
getEditData($id) | 获取编辑回显数据 | Model | |
操作 | store($data) | 新增数据 | bool |
update($id, $data) | 更新数据 | bool | |
delete($ids) | 删除数据 | mixed | |
钩子 | saving($data, $id) | 保存前钩子 | void |
saved($model, $isEdit) | 保存后钩子 | void | |
deleted($ids) | 删除后钩子 | void |
在 app/Admin/routes.php
中注册 Resource 路由:
创建控制器 app/Admin/Controllers/BookController.php
:
创建服务 app/Admin/Services/BookService.php
:
创建模型 app/Models/Book.php
:
在后台菜单管理中创建对应菜单项,设置路由为 /books
。
框架提供了强大的代码生成器,可以自动生成完整的 CRUD 代码:
生成的文件包括:
使用代码生成器可以大大提高开发效率,生成后只需根据业务需求进行微调即可。
baseCRUD()
、baseForm()
等基础方法