laravel路由包含基础路由、资源路由、路由分组和中间件绑定四类:1.基础路由用route::get()等映射http方法与uri;2.资源路由通过route::resource()自动生成restful七种动作;3.路由分组支持prefix、middleware等批量配置;4.中间件可全局、分组或单路由绑定,支持自定义。

一、基础路由定义
在 Laravel 中,基础路由用于将特定的 HTTP 请求方法和 URI 映射到对应的处理逻辑,通常为闭包函数或控制器方法。该机制构成应用请求响应流程的起点,决定请求进入哪一段业务代码。
1、打开 routes/web.php 文件。
2、使用 Route::get() 方法注册一个 GET 请求路由,例如:Route::get('/hello', function () { return 'Hello World'; });
3、使用 Route::post() 注册 POST 路由,接收表单提交或 API 请求。
4、通过 Route::match(['get', 'post'], '/login', ...) 同时匹配多种请求方法。
5、使用 Route::any() 接收任意 HTTP 方法的请求。
二、资源路由声明
资源路由依据 RESTful 原则自动生成标准的七种动作对应路由,大幅减少重复定义,适用于典型模型增删改查场景。其底层将 URI 模式与控制器方法名进行约定式绑定。
1、运行命令 php artisan make:controller PhotoController --resource 生成资源控制器。
2、在 routes/web.php 中调用 Route::resource('photos', PhotoController::class);
3、确认生成的路由列表:执行 php artisan route:list 查看所有注册路由及其对应动作。
4、如需仅注册部分动作,使用 only 或 except 选项,例如:Route::resource('photos', PhotoController::class)->only(['index', 'show']);
三、路由分组配置
路由分组允许批量设置共享属性,如公共前缀、中间件、命名空间或子域名,避免对每个路由单独重复声明,提升可维护性与结构清晰度。
1、使用 Route::prefix('admin') 将一组路由统一添加路径前缀,例如所有后台路由以 /admin 开头。
2、使用 Route::middleware(['auth', 'verified']) 为分组内所有路由附加中间件栈。
3、使用 Route::namespace('Admin') 指定控制器所在命名空间,使控制器类引用无需完整命名空间路径。
4、嵌套分组:在一个分组内部再定义子分组,例如先按模块划分,再按权限层级细化中间件。
四、中间件绑定方式
中间件在请求生命周期中充当拦截器,用于执行认证、日志记录、CORS 处理等横切关注点。Laravel 支持全局、分组及单个路由三级绑定粒度。
1、在 app/Http/Kernel.php 的 $middlewareGroups 数组中查看已注册的中间件组名称,如 web 和 api。
2、为单个路由绑定中间件:在路由定义末尾追加 ->middleware('auth')。
3、为路由参数启用中间件:使用 ->middleware('throttle:60,1') 实现频率限制。
4、创建自定义中间件:执行 php artisan make:middleware EnsureTokenIsValid,并在 handle() 方法中编写逻辑判断与响应返回。











