Skip to content

Laravel 路由扩展

WARNING

该功能在核心包 catchadmin/pro >= 0.5.4 版本提供

介绍

在后台开发中,表格页面通常会包含列表、新增、编辑、删除、状态切换、导入和导出。CatchAdmin 专业版为这一类接口提供了统一的资源路由扩展。

Laravel 原生资源路由先解决基础 CRUD:

php
Route::apiResource('users', UserController::class);
php
Route::adminResource('users', UserController::class);

adminResource 在资源路由的基础上,继续补上后台常用的导入、导出、状态切换、回收站恢复等入口。

传统写法里,导入导出通常需要额外补路由:

php
Route::apiResource('users', UserController::class);
Route::get('export/users', [UserController::class, 'export']);
Route::post('import/users', [UserController::class, 'import']);

adminResource 直接把这一层收进去,路由文件会更干净。

这条语句会根据控制器里已经定义的 public 方法自动注册路由。

标准资源路由包括:

  • GET users - 显示列表数据 -> index 方法
  • POST users - 新增数据 -> store 方法
  • PUT users/{id} - 更新数据 -> update 方法
  • GET users/{id} - 请求单条数据 -> show 方法
  • DELETE users/{id} - 删除数据 -> destroy 方法

adminResource

除了标准资源路由,adminResource 还支持下面这些后台接口:

  • PUT users/enable/{id} - 状态更改 -> enable 方法
  • GET export/users - 导出数据 -> export 方法
  • POST import/users - 导入数据 -> import 方法
  • PUT users/restore/{id} - 恢复数据 -> restore 方法
  • GET form/users - 动态表单 -> form 方法
  • GET table/users - 动态表格 -> table 方法

例如控制器里声明了 export()import(),就会自动生成导入导出路由。控制器里只保留 index()store()update() 这些方法时,路由表也只会注册对应入口。

这套机制适合后台模块开发。控制器方法和路由会保持一致,后续增加导入导出功能时,也不需要回到路由文件单独补一遍。

WARNING

生产环境部署时,建议执行 php artisan route:cache 命令缓存路由配置以提升性能。