首页 > php框架 > Laravel > 正文

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

尼克
发布: 2025-12-22 16:49:02
原创
737人浏览过
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

给路由起名字可以让你在视图或代码中更方便地生成链接,而不依赖硬编码路径:

通义灵码
通义灵码

阿里云出品的一款基于通义大模型的智能编码辅助工具,提供代码智能生成、研发智能问答能力

通义灵码 304
查看详情 通义灵码
  • 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', 'Api\UserController@index');<br>
        });
    登录后复制
  • 命名空间(常用于控制器):
    Route::namespace('Admin')->group(...)

路由指向控制器

大多数情况下,路由会指向控制器方法而不是闭包:

  • Route::get('/users', 'UserController@index'); —— Laravel 8 以前语法
  • Laravel 8+ 推荐使用类名引用:
    use App\Http\Controllers\UserController;
    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中文网其它相关文章!

路由优化大师
路由优化大师

路由优化大师是一款及简单的路由器设置管理软件,其主要功能是一键设置优化路由、屏广告、防蹭网、路由器全面检测及高级设置等,有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号