Laravel路由怎么定义_Laravel核心路由系统完全入门指南

2次阅读

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

Laravel 路由怎么定义_Laravel 核心路由系统完全入门指南

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 中文网其它相关文章!

站长
版权声明:本站原创文章,由 站长 2025-12-22发表,共计2200字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources