詳解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>DocumentRoot?"D:/xampp/htdocs/<project>/public"ServerName?ddd.com</project></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('/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把參數限制寫在方法或者路由中.普通形式:-&gt;where('要限制的參數名','限制規則(正則,不用斜線//)');數組形式:-&gt;where(['要限制的參數名1'=&gt;'限制規則1(正則,不用斜線//)','要限制的參數名2'=&gt;'限制規則2(正則,不用斜線//)']);Route::get('user/{name}',?function?($name)?{//})-&gt;where('name',?'[A-Za-z]+');Route::get('user/{id}',?function?($id)?{//})-&gt;where('id',?'[0-9]+');Route::get('user/{id}/{name}',?function?($id,?$name)?{//})-&gt;where(['id'?=&gt;?'[0-9]+',?'name'?=&gt;?'[a-z]+']);注意?:?路由參數不能包含中橫線?"-",參數會被理解為變量名,所以不能有'-',下劃線是可以滴;

? ? ? ? ? ? ? ? ?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('/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]+']);注意 : 路由參數不能包含中橫線 "-",參數會被理解為變量名,所以不能有'-',下劃線是可以滴;

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享