Laravel路由配置位于routes目录,web.php处理Web请求,api.php用于API接口。通过Route门面定义GET、POST等请求路由,支持闭包和控制器方法。可使用{param}定义必填或{param?}可选参数,并用where添加正则约束。命名路由便于生成URL和重定向,如name('user.show')配合route()函数。路由分组可统一设置中间件、前缀、命名空间和名称前缀,提升组织性。推荐使用控制器替代闭包,Resource路由自动生成RESTful动作。Fallback路由处理未匹配请求,生产环境可用php artisan route:cache提升性能,但闭包路由不支持缓存。
在 Laravel 中,路由是应用的核心组成部分之一,它负责将用户的请求映射到相应的控制器或闭包函数。Laravel 提供了灵活且强大的路由系统,支持多种 HTTP 请求方式、参数传递、中间件绑定和命名路由等功能。下面详细介绍 Laravel 路由的配置方法与常见用法。
Laravel 的路由定义主要位于 routes 目录下,常见的文件包括:
web 中间件组(如会话、CSRF 保护)。api 中间件组(无状态、基于 token 验证)。大多数情况下,你只需要操作 web.php 和 api.php。
Laravel 支持为不同的 HTTP 方法注册路由:
示例:
use Illuminate\Support\Facades\Route;
// 响应 GET 请求
Route::get('/home', function () {
return 'Hello, Laravel!';
});
// 响应 POST 请求
Route::post('/submit', function () {
return 'Data submitted';
});
// 同时响应多个方法
Route::match(['get', 'post'], '/form', function () {
return 'Form page';
});
// 响应任意方法
Route::any('/any', function () {
return 'Any method accepted';
});
有时需要从 URL 中获取动态参数,Laravel 支持必填和可选参数。
必填参数:
Route::get('/user/{id}', function ($id) {
return "User ID: $id";
});
可选参数(使用 ? 定义,默认值可设置):
Route::get('/user/{name?}', function ($name = 'Guest') {
return "Hello, $name";
});
参数约束:通过正则表达式限制参数格式:
Route::get('/user/{id}', function ($id) {
return "User: $id";
})->where('id', '[0-9]+'); // 只允许数字
// 多个参数约束
Route::get('/user/{id}/{name}', function ($id, $name) {
//
})->where(['id' => '[0-9]+', 'name' => '[a-zA-Z]+']);
为路由起名字,便于在模板或代码中生成 URL 或重定向。
Route::get('/dashboard', function () {
return view('dashboard');
})->name('dashboard');
// 在视图中使用 route() 辅助函数
// route('dashboard') → /dashboard
// 重定向
return redirect()->route('dashboard');
带参数的命名路由:
Route::get('/user/{id}', function ($id) {
return "User $id";
})->name('user.show');
// 生成 URL:route('user.show', ['id' => 1]) → /user/1
使用分组可以为一组路由统一设置中间件、前缀、命名空间或名称前缀。
中间件分组:
Route::middleware(['auth'])->group(function () {
Route::get('/profile', function () {
return 'Profile page';
});
});
前缀分组:
Route::prefix('admin')->group(function () {
Route::get('/users', function () {
return 'Admin Users List';
});
// 最终路径:/admin/users
});
命名空间(适用于控制器):
Route::namespace('Admin')->prefix('admin')->group(function () {
Route::get('/dashboard', 'DashboardController@index');
});
名称前缀:
Route::name('admin.')->group(function () {
Route::get('/users', function () {
// 路由名为 admin.users
})->name('users');
});
推荐将逻辑放在控制器中,而不是闭包函数里。
// 定义控制器路由
Route::get('/posts', 'PostController@index');
Route::post('/posts', 'PostController@store');
使用 Route::resource() 快速生成 RESTful 资源路由:
Route::resource('posts', 'PostController');
这会自动生成 index、create、store、show、edit、update、destroy 七个动作对应的路由。
也可指定只生成部分方法:
Route::resource('posts', 'PostController')->only(['index', 'show']);
Route::resource('posts', 'PostController')->except(['destroy']);
当没有匹配到任何路由时,执行 fallback 路由:
Route::fallback(function () {
return '404 N
ot Found';
});
通常放在所有路由之后。
在生产环境中,可以通过 Artisan 命令缓存路由以提升性能:
php artisan route:cache
清除缓存:
php artisan route:clear
注意:闭包路由无法被缓存,因此建议全部使用控制器路由。
基本上就这些。掌握这些配置方法后,你可以高效地组织 Laravel 应用的访问路径。不复杂但容易忽略的是约束规则和命名规范,合理使用能让项目更清晰。
# php
# laravel
# 正则表达式
# cad
# 路由
# red
# restful
# 中间件
# csrf
# Resource
# 命名空间
# Token
# 接口
# 闭包
# delete
# console
# 事件
# http
# 可选
# 必填
# 放在
# 多个
# 重定向
# 自动生成
# 的是
# 推荐使用
# 适用于
# 也可
相关文章:
建站之星Pro快速搭建教程:模板选择与功能配置指南
视频网站制作教程,怎么样制作优酷网的小视频?
建站之星3.0如何解决常见操作问题?
建站之星后台管理如何实现高效配置?
建站之星安装后如何配置SEO及设计样式?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
微信小程序 input输入框控件详解及实例(多种示例)
建站之星如何开启自定义404页面避免用户流失?
建站之星备案流程有哪些注意事项?
Python文件管理规范_工程实践说明【指导】
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
文字头像制作网站推荐软件,醒图能自动配文字吗?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
如何快速生成可下载的建站源码工具?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
免费网站制作appp,免费制作app哪个平台好?
个人网站制作流程图片大全,个人网站如何注销?
如何通过商城免费建站系统源码自定义网站主题?
深圳网站制作培训,深圳哪些招聘网站比较好?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
代购小票制作网站有哪些,购物小票的简要说明?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
Java解压缩zip - 解压缩多个文件或文件夹实例
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
建设网站制作价格,怎样建立自己的公司网站?
魔方云NAT建站如何实现端口转发?
如何快速生成高效建站系统源代码?
相册网站制作软件,图片上的网址怎么复制?
已有域名能否直接搭建网站?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
建站之星收费标准详解:套餐费用及年费价格表一览
如何通过可视化优化提升建站效果?
建站之星展会模板:智能建站与自助搭建高效解决方案
桂林网站制作公司有哪些,桂林马拉松怎么报名?
建站DNS解析失败?如何正确配置域名服务器?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
高端建站三要素:定制模板、企业官网与响应式设计优化
C++用Dijkstra(迪杰斯特拉)算法求最短路径
在线制作视频网站免费,都有哪些好的动漫网站?
如何自定义建站之星网站的导航菜单样式?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
高端建站如何打造兼具美学与转化的品牌官网?
详解jQuery停止动画——stop()方法的使用
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
如何在IIS中新建站点并配置端口与IP地址?
*请认真填写需求信息,我们会在24小时内与您取得联系。