laravel 5.5 -- router
发布日期:2025-04-04 02:11:18 浏览次数:12 分类:精选文章

本文共 2164 字,大约阅读时间需要 7 分钟。

Laravel 路由详解

路由基础配置

Laravel 提供了丰富的路由配置选项,可以帮助开发者灵活地管理应用的 URL 路径。以下是常用的路由设置方法:

GET 和 POST 路由

Route::get($uri, $callback);Route::post($uri, $callback);

PUT、DELETE 等方法

Route::put($uri, $callback);Route::delete($uri, $callback);

路由参数捕捉

可以通过参数定界符 {} 在 URL 中定义路由参数。例如:

Route::get('user/{id}', function ($id) {    // 定义用户显示页面});

可选参数配置

如果某些参数是可选的,可以在定义时设置默认值:

Route::get('user/{name?}', function ($name = 'John') {    // 可选参数,默认为 John});

路由参数约束

为了确保参数的格式和有效性,Laravel 提供了强大的约束功能。可以通过 where() 方法对指定参数进行正则表达式匹配:

Route::get('user/{id}', function ($id) {    //Against是id的正则约束})->where('id', '[0-9]+');

全局约束

通过 Route::pattern() 方法可以在整个应用中应用全局约束:

Route::pattern('id', '[0-9]+');

默认情况下,这些约束会自动应用到所有使用 {id} 的路由中。

命名路由

Laravel 支持为路由定义命名,使得开发者可以通过名称方便地引用路由:

Route::get('user/profile', function () {    // 显示用户个人信息页面})->name('profile');

其他路由可以基于名称进行重定向或抽象管理。

子域名路由

可以通过域名指向来管理多个应用的路由:

Route::domain('{account}.myapp.com')->group(function () {    Route::get('user/{id}', function ($id) {        // 进行子域名内的路由操作    });});

路由前缀

为控制组中的路由 URL 加前缀:

Route::prefix('admin')->group(function () {    Route::get('users', function () {        // 匹配 /admin/users URL    });});

显式和隐式参数绑定

Laravel 提供了灵活的参数绑定方法,使得路由可以自动关联到模型实例。通过显式绑定,可以直接在路由中定义数据模型的关联:

Route::get('profile/{user}', function ($user) {    // 显示用户个人资料页面});

对于隐式绑定,可以通过模型的 getRouteKeyName() 方法定义路由键名:

public function getRouteKeyName(){    return 'slug';}

当然,显式绑定也允许你定义具体的键名:

Route::model('user', App\User::class)->get('profile/{user}', function ($user) {    // 显示用户个人资料页面});

自定义路由解析逻辑

可以通过自定义函数来解析特定参数:

Route::bind('user', function ($value) {    return App\User::where('name', $value)->first() ?? abort(404);});

表单伪造防护

在表单提交时,需要通过CSRQ参数防护:

@method_field('PUT')

路由信息获取

可以通过 Route::current() 获取当前路由信息:

$url = route('mytest');$route = Route::current();$name = $route->named('mytest');

路由组和中间件

通过中间件可以对特定路由组追加功能,比如权限验证:

Route::middleware('auth')->group(function () {    Route::get('user/profile', function () {        // 验证已登录用户    });});

命名空间和组件化

可以指定路由组的命名空间,使代码组织更清晰:

Route::namespace('Admin')->group(function () {    // 在 Admin 命名空间下的路由定义});

通过以上方法,可以灵活地配置和管理 Laravel 应用的路由系统。Laravel 的路由功能强大且易于使用,是开发者日常工作的重要工具。

上一篇:Laravel 5.x Illuminate\Http\Request 类 offsetSet(),merge(),replace() 方法的区别
下一篇:laravel 5.5 -- Query Builder

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月25日 16时49分29秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Kubernetes原生的CICD工具Tekton详解 2025-04-03
Kubernetes多master节点高可用集群安装 2025-04-03
Kubernetes存储之Persistent Volumes简介 2025-04-03
Kubernetes学习总结(10)—— 何为云原生,与 kubernetes 是什么关系 2025-04-03
Kubernetes学习总结(11)—— Kubernetes Pod 到底是什么? 2025-04-03
Kubernetes学习总结(12)—— 学习 kubernetes 的10个技巧或建议 2025-04-03
Kubernetes学习总结(13)—— Kubernetes 各个组件的概念 2025-04-03
Kubernetes学习总结(14)—— Kubernetes 实用命令总结 2025-04-03
Kubernetes学习总结(15)—— Kubernetes 实战之部署 Mysql 集群 2025-04-03
Kubernetes学习总结(16)—— Kubernetes 实战之部署 Redis 集群 2025-04-03
Kubernetes学习总结(17)—— Kubernetes 快速入门需要掌握的知识点总结 2025-04-03
Kubernetes学习总结(18)—— Kubernetes 容器网络 2025-04-03
Kubernetes学习总结(1)——Kubernetes入门简介 2025-04-03
Kubernetes学习总结(2)——Kubernetes设计架构 2025-04-03
Kubernetes学习总结(3)——一年时间打造全球最大规模之一的Kubernetes集群,蚂蚁金服怎么做到的? 2025-04-03
Kubernetes学习总结(4)——Kubernetes v1.20 重磅发布 | 新版本核心主题 & 主要变化解读 2025-04-03
Kubernetes学习总结(5)——Kubernetes 常见面试题汇总 2025-04-03
Kubernetes学习总结(6)——Kubernetes 7周年:它为什么如此受欢迎? 2025-04-03
Kubernetes学习总结(7)——学习 Kubernetes 的 Pod 2025-04-03
Kubernetes学习总结(8)—— Kubernetes Pod 资源管理 和 Pod 服务质量 2025-04-03