laravel路由 系统核心包括:1. 基本路由定义支持 GET、POST 等 http 方法;2. 动态参数可加正则约束;3. 命名路由便于 URL 生成;4. 分组功能统一设置 中间件 、前缀和 命名空间;5. 路由指向控制器方法,支持资源路由自动生成 CRUD 对应路径;6. 提供视图直接返回和重定向路由快捷方式。掌握这些可构建清晰、可维护的应用结构。

Laravel 的 路由 系统是整个框架的核心之一,它负责将用户的请求映射到对应的控制器或 闭包 函数。定义路由非常直观且灵活,适合从小型项目到大型应用的各种需求。
基本路由定义
Laravel 中的路由定义主要在 routes/web.php(用于 Web 页面)和 routes/api.php(用于无状态 API)文件中进行。
最基本的路由使用 Route 门面来绑定 HTTP 请求方法与 回调函数:
-
Route::get('/home', function () { return 'Hello World';});—— 定义一个 GET 请求 -
Route::post('/submit', function () {return 'Form submitted';});—— 处理 表单提交 -
Route::put('/update', ……);、Route::delete('/remove', ……);对应其他 HTTP 方法 -
Route::match(['get', 'post'], '/login', function () { ……});—— 匹配多种方法 -
Route::any('/any', function () {……});—— 响应任意 HTTP 方法(慎用)
路由参数与约束
实际开发中,URL 往往包含动态部分,比如用户 ID 或文章标题。Laravel 支持带参数的路由:
Route::get('/user/{id}', function ($id) {return "User {$id}"; });- 多个参数:
Route::get('/post/{year}/{month}', function ($year, $month) {……});
你还可以对参数添加正则约束,确保数据格式正确:
-
Route::get('/user/{id}', ……)->where('id', '[0-9]+');—— id 必须为数字 -
->where(['id' => '[0-9]+', 'name' => '[a-z]+'])—— 多个参数约束
命名路由与生成 URL
给路由起名字可以让你在视图或代码中更方便地生成链接,而不依赖硬 编码 路径:
Route::get('/dashboard', function () {……})->name('dashboard');- 在 Blade 模板中使用:
route('dashboard')输出完整 URL - 带参数的命名路由:
route('user.profile', ['id' => 123])
路由分组与中间件
为了组织结构清晰,Laravel 提供了路由分组功能,可统一设置中间件、命名空间、前缀等:
- 添加中间件:
Route::middleware(['auth'])->group(function () {<br> Route::get('/admin/profile', 'AdminController@profile');<br> }); - 添加前缀:
Route::prefix('api/v1')->group(function () {<br> Route::get('users', 'ApiUserController@index');<br> }); - 命名空间(常用于控制器):
Route::Namespace('Admin')->group(……)
路由指向控制器
大多数情况下,路由会指向控制器方法而不是闭包:
-
Route::get('/users', 'UserController@index');—— Laravel 8 以前语法 - Laravel 8+ 推荐使用类名引用:
use appHttpControllersUserController;Route::get('/users', [UserController::class, 'index']);
资源路由(restful 路由)
对于标准的 CRUD 操作,Laravel 提供了资源路由来自动生成 7 个常用路由:
Route::Resource('photos', PhotoController::class);- 自动生成 index, create, store, show, edit, update, destroy 路由
- 也可指定只生成部分动作:
->only(['index', 'show'])或->except([……])
重定向路由与视图路由
有些页面只是简单返回视图或做跳转,Laravel 提供了快捷方式:
Route::view('/about', 'pages.about'); // 直接返回视图Route::redirect('/here', '/there'); // 302 重定向Route::permanentRedirect('/old', '/new'); // 301 永久重定向
基本上就这些。掌握这些核心概念后,你已经能熟练使用 Laravel 的路由系统构建清晰、可维护的应用结构。不复杂但容易忽略细节,比如命名和约束,建议在项目初期就规范好路由设计。
以上就是 Laravel路由 怎么定义_Laravel 核心路由系统完全入门指南的详细内容,更多请关注 php 中文网其它相关文章!