
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参数防护:
路由信息获取
可以通过 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 的路由功能强大且易于使用,是开发者日常工作的重要工具。
发表评论
最新留言
表示我来过!
[***.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学习总结(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学习总结(18)—— Kubernetes 容器网络
2025-04-03
Kubernetes学习总结(1)——Kubernetes入门简介
2025-04-03
Kubernetes学习总结(2)——Kubernetes设计架构
2025-04-03
Kubernetes学习总结(5)——Kubernetes 常见面试题汇总
2025-04-03
Kubernetes学习总结(6)——Kubernetes 7周年:它为什么如此受欢迎?
2025-04-03
Kubernetes学习总结(7)——学习 Kubernetes 的 Pod
2025-04-03