搜索
首页php框架Laravel详解Laravel之路由请求方式、路由传参

下面由Laravel教程栏目给大家介绍Laravel之路由请求方式、路由传参,希望对需要的朋友有所帮助!

1、路由请求方式____文件路径app->routes->web.php

//get请求方式
Route::get('user/show',function(){
    return '世间安得两全法,不负如来不负卿;万般皆是命,半点不由人';});
    //post请求方式
 Route::post('edit',function(){
    return '万般皆是命,半点不由人';}); 
    //多请求路由
    Route::match(['get','post'],'user/register',function(){
    return '多请求路由register';});
    //任意请求
    Route::any('user/wall'function(){
    return '任意请求';});

2、路由传参app->routes->web.php

//路由传参,可传多个参数
Route::get('user/{id}/{name}',function($id,$name){
    return '路由传参————'.$id.$name;});
    //路由可选参数
    Route::get('page/{page?}',function($page=1){
    return 'page'.$page;});

3、参数类型限制app->routes->web.php

//参数类型限制Route::get('choice/{id}/{name}',function($id,$name){
    return 'choice参数类型限制'.$id.$name;})->where(['id'=>'\d+','name'=>'[a-zA-Z]+']);

4、文件

1.2 配置虚拟主机

注意,在项目路径public下
修改虚拟主机配置文件,在apache添加如下代码:

<VirtualHost *:80>DocumentRoot "D:/xampp/htdocs/<project>/public"ServerName ddd.com</VirtualHost>host文件 127.0.0.1 ddd.com

第2章 路由器

路由简介
1,简单的说就是将用户的请求转发给相应的程序去处理
2,作用建立url和程序之间的映射
3,请求类型get,put,post,patch,delete等
任何框架都离不开路由器,TP是通过地址栏规则生成,如:xxx.com/home/user/add;
2.1 路由器如何调用控制器
laravel的路由器与控制器的关系,需要明确的在/routes/web.php
文件中明确定义.
格式如下 :

基础路由/*
当用 GET 方式访问 xx.com/yy 这个地址的时候用匿名函数去响应 .
*/Route::get(&#39;/yy&#39;, function(){return &#39;123&#39;;});/*
当用 POST 方式访问 xx.com/zz 这个地址时,用 匿名函数去响应 .
*/Route::post(&#39;/zz&#39;, function(){return &#39;123&#39;;});/*
当 GET 访问网站根目录 "/" 时,用第2个参数的匿名函数去响应 .
*/Route::get(&#39;/&#39;, function () {return &#39;hello&#39;;})多请求路由/*
不管是GET还是POST方法,访问 xx.com/user 时,都用 XxController 中的 method() 方法去响应 .
*/Route::match([&#39;get&#39;,&#39;post&#39;] , &#39;/user&#39; , &#39;XxController@method&#39;)/*
GET,POST,PUT,DELETE.. 任何方法访问 xx.com/test, 都用第2个参数中的匿名函数去响应 .
*/Route::any(&#39;/test&#39;, function () {return &#39;Hello World&#39;;});注意: 如果同一个路由被写了2次
则以最后一次路由为准!

2.2路由器与传递参数

/*
下例是指 xx.com/user/123 这样的 URL,user 后面的值将会捕捉到,
并自动传递给控制器的方法或匿名函数
*/Route::get(&#39;user/{id}&#39;, function ($id) {return &#39;User &#39;.$id;});/*
下例是指 xx.com/user/{name}/{id} 这样的 URL,user 后的参数,
会被捕捉到 , 并自动传递给控制器的方法或匿名函数
*/Route::get(&#39;user/{name}/{id}&#39;, function ($name, $id) {return &#39;user_&#39;.$name.$id;});如果没有传递参数,则会报错;2.3 传递可选参数
在路由 参数 的花括号最后 加上 ?(问号) 即可
Route::get(&#39;user/{name?}&#39;, function ($name = null) {return $name;});Route::get(&#39;user/{name?}&#39;, function ($name = &#39;John&#39;) {return $name;});

2.4 参数限制

在 TP 中,自动验证写在 Model 里,不够灵活. laravel把参数限制写在方法或者路由中.普通形式:->where(&#39;要限制的参数名&#39;,&#39;限制规则(正则,不用斜线//)&#39;);数组形式:->where([&#39;要限制的参数名1&#39;=>&#39;限制规则1(正则,不用斜线//)&#39;,&#39;要限制的参数名2&#39;=>&#39;限制规则2(正则,不用斜线//)&#39;]);Route::get(&#39;user/{name}&#39;, function ($name) {//})->where(&#39;name&#39;, &#39;[A-Za-z]+&#39;);Route::get(&#39;user/{id}&#39;, function ($id) {//})->where(&#39;id&#39;, &#39;[0-9]+&#39;);Route::get(&#39;user/{id}/{name}&#39;, function ($id, $name) {//})->where([&#39;id&#39; => &#39;[0-9]+&#39;, &#39;name&#39; => &#39;[a-z]+&#39;]);注意 : 路由参数不能包含中横线 "-",参数会被理解为变量名,所以不能有&#39;-&#39;,下划线是可以滴;

                 1、路由请求方式____文件路径app->routes->web.php

//get请求方式Route::get('user/show',function(){
    return '世间安得两全法,不负如来不负卿;万般皆是命,半点不由人';});//post请求方式
 Route::post('edit',function(){
    return '万般皆是命,半点不由人';}); //多请求路由Route::match(['get','post'],'user/register',function(){
    return '多请求路由register';});//任意请求Route::any('user/wall'function(){
    return '任意请求';});

2、路由传参app->routes->web.php

//路由传参,可传多个参数Route::get('user/{id}/{name}',function($id,$name){
    return '路由传参————'.$id.$name;});//路由可选参数Route::get('page/{page?}',function($page=1){
    return 'page'.$page;});

3、参数类型限制app->routes->web.php

//参数类型限制Route::get('choice/{id}/{name}',function($id,$name){
    return 'choice参数类型限制'.$id.$name;})->where(['id'=>'\d+','name'=>'[a-zA-Z]+']);

4、文件

1.2 配置虚拟主机

注意,在项目路径public下
修改虚拟主机配置文件,在apache添加如下代码:

367e5423ee61f30ef297d66282a28f6fDocumentRoot "D:/xampp/htdocs/c70346ba2d7be186a93fef826469bd2f/public"ServerName ddd.comee672f0beb03b42be69279368a66a410host文件 127.0.0.1 ddd.com

第2章 路由器

路由简介
1,简单的说就是将用户的请求转发给相应的程序去处理
2,作用建立url和程序之间的映射
3,请求类型get,put,post,patch,delete等
任何框架都离不开路由器,TP是通过地址栏规则生成,如:xxx.com/home/user/add;
2.1 路由器如何调用控制器
laravel的路由器与控制器的关系,需要明确的在/routes/web.php
文件中明确定义.
格式如下 :

基础路由/*
当用 GET 方式访问 xx.com/yy 这个地址的时候用匿名函数去响应 .
*/Route::get('/yy', function(){return '123';});/*
当用 POST 方式访问 xx.com/zz 这个地址时,用 匿名函数去响应 .
*/Route::post('/zz', function(){return '123';});/*
当 GET 访问网站根目录 "/" 时,用第2个参数的匿名函数去响应 .
*/Route::get('/', function () {return 'hello';})多请求路由/*
不管是GET还是POST方法,访问 xx.com/user 时,都用 XxController 中的 method() 方法去响应 .
*/Route::match(['get','post'] , '/user' , 'XxController@method')/*
GET,POST,PUT,DELETE.. 任何方法访问 xx.com/test, 都用第2个参数中的匿名函数去响应 .
*/Route::any('/test', function () {return 'Hello World';});注意: 如果同一个路由被写了2次
则以最后一次路由为准!

2.2路由器与传递参数

/*
下例是指 xx.com/user/123 这样的 URL,user 后面的值将会捕捉到,
并自动传递给控制器的方法或匿名函数
*/Route::get('user/{id}', function ($id) {return 'User '.$id;});/*
下例是指 xx.com/user/{name}/{id} 这样的 URL,user 后的参数,
会被捕捉到 , 并自动传递给控制器的方法或匿名函数
*/Route::get('user/{name}/{id}', function ($name, $id) {return 'user_'.$name.$id;});如果没有传递参数,则会报错;2.3 传递可选参数
在路由 参数 的花括号最后 加上 ?(问号) 即可
Route::get('user/{name?}', function ($name = null) {return $name;});Route::get('user/{name?}', function ($name = 'John') {return $name;});

2.4 参数限制

在 TP 中,自动验证写在 Model 里,不够灵活. laravel把参数限制写在方法或者路由中.普通形式:->where('要限制的参数名','限制规则(正则,不用斜线//)');数组形式:->where(['要限制的参数名1'=>'限制规则1(正则,不用斜线//)','要限制的参数名2'=>'限制规则2(正则,不用斜线//)']);Route::get('user/{name}', function ($name) {//})->where('name', '[A-Za-z]+');Route::get('user/{id}', function ($id) {//})->where('id', '[0-9]+');Route::get('user/{id}/{name}', function ($id, $name) {//})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);注意 : 路由参数不能包含中横线 "-",参数会被理解为变量名,所以不能有'-',下划线是可以滴;

以上是详解Laravel之路由请求方式、路由传参的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:csdn。如有侵权,请联系admin@php.cn删除
协作文档编辑:简化分布式团队中的工作流程协作文档编辑:简化分布式团队中的工作流程Apr 27, 2025 am 12:21 AM

协作文档编辑是分布式团队优化工作流程的有效工具。它通过实时协作和反馈循环提升沟通和项目进度,常用工具包括GoogleDocs、MicrosoftTeams和Notion。使用时需注意版本控制和学习曲线等挑战。

以前的Laravel版本将得到多长时间?以前的Laravel版本将得到多长时间?Apr 27, 2025 am 12:17 AM

ThepreviousversionofLaravelissupportedwithbugfixesforsixmonthsandsecurityfixesforoneyearafteranewmajorversion'srelease.Understandingthissupporttimelineiscrucialforplanningupgrades,ensuringprojectstability,andleveragingnewfeaturesandsecurityenhancemen

利用Laravel的功能来为前端开发和后端开发利用Laravel的功能来为前端开发和后端开发Apr 27, 2025 am 12:16 AM

Laravelcanbeeffectivelyusedforbothfrontendandbackenddevelopment.1)Backend:UtilizeLaravel'sEloquentORMforsimplifieddatabaseinteractions.2)Frontend:LeverageBladetemplatesforcleanHTMLandintegrateVue.jsfordynamicSPAs,ensuringseamlessfrontend-backendinteg

Laravel可以用于完整的堆栈开发(前端后端)吗?Laravel可以用于完整的堆栈开发(前端后端)吗?Apr 27, 2025 am 12:10 AM

LaravelcanbeusedforfullstackDevelopment.1)BackendMasteryWithlaravel'sexpressiversyntaxAndFeaturesLikeElikeElikeEloquentormfordatabaseMemangement.2)FrontendIntIntegration usingbladebladynamichtegration bladynamichtmltmltemplates.3)增强fradeffordynamichtmltemplate)

哪些工具有助于升级到最新的Laravel版本?哪些工具有助于升级到最新的Laravel版本?Apr 27, 2025 am 12:02 AM

答案:升级Laravel的最佳工具包括Laravel的UpgradeGuide、LaravelShift、Rector、Composer和LaravelPint。1.使用Laravel的UpgradeGuide作为升级路线图。2.利用LaravelShift自动化大部分升级工作,但需人工复查。3.通过Rector自动重构代码,需理解并可能自定义其规则。4.用Composer管理依赖,需注意可能的依赖冲突。5.运行LaravelPint保持代码风格一致性,但它不解决功能问题。

超越Zoom Call:连接分布式团队的创意策略超越Zoom Call:连接分布式团队的创意策略Apr 26, 2025 am 12:24 AM

ToenhanceGaimentAndCohesionAmongDistributedTeamSbeyondzoom,实施策略:1)组织virtualCoffeebreaksForinfornformalChats,2)useassynchronoustoolslikeslikeslikeslikeslikeslikslackfornon worksdiscusions,3)介绍present cuctuceGamificationgamificeGamificationgamificationgamificationWithteamGameGameSorchallEngEsorChallEngEnsErchallEnges,and4)

最新的Laravel版本中有什么破坏变化?最新的Laravel版本中有什么破坏变化?Apr 26, 2025 am 12:23 AM

Laravel10 IntroducesseveralbreakingChanges:1)Itrequiresphp8.1orhigher,2)TherOuteserviceProviderNowSabootMethodForloadingRoutes,3)thewithTimestAmpAmpAmps()MethodOneLoquentRectrationShipsissississisdeprected,and4))

生产力悖论:在远程设置中保持重点和动力生产力悖论:在远程设置中保持重点和动力Apr 26, 2025 am 12:17 AM

tomaintainfocusandmotivationInremotework,createStructuredEnvorment,托管式构成,促进性,促进性通过socialescialactionsions andgoalsetting,维持工作劳动生平,维持且苏联核酸盐学。1)setupadeDedworkspadedworkspacepaceandstickeandsticketicktickticktoorine aroutine。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境