主题
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 方法自动注册路由。
标准资源路由包括:
GETusers- 显示列表数据 ->index方法POSTusers- 新增数据 ->store方法PUTusers/{id}- 更新数据 ->update方法GETusers/{id}- 请求单条数据 ->show方法DELETEusers/{id}- 删除数据 ->destroy方法
adminResource
除了标准资源路由,adminResource 还支持下面这些后台接口:
PUTusers/enable/{id}- 状态更改 ->enable方法GETexport/users- 导出数据 ->export方法POSTimport/users- 导入数据 ->import方法PUTusers/restore/{id}- 恢复数据 ->restore方法GETform/users- 动态表单 ->form方法GETtable/users- 动态表格 ->table方法
例如控制器里声明了 export() 和 import(),就会自动生成导入导出路由。控制器里只保留 index()、store()、update() 这些方法时,路由表也只会注册对应入口。
这套机制适合后台模块开发。控制器方法和路由会保持一致,后续增加导入导出功能时,也不需要回到路由文件单独补一遍。
WARNING
生产环境部署时,建议执行 php artisan route:cache 命令缓存路由配置以提升性能。