下面由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
//路由傳參,可傳多個參數(shù) Route::get('user/{id}/{name}',function($id,$name){ return '路由傳參————'.$id.$name;}); //路由可選參數(shù) Route::get('page/{page?}',function($page=1){ return 'page'.$page;});
3、參數(shù)類型限制app->routes->web.php
//參數(shù)類型限制Route::get('choice/{id}/{name}',function($id,$name){ return 'choice參數(shù)類型限制'.$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,簡單的說就是將用戶的請求轉(zhuǎn)發(fā)給相應的程序去處理
2,作用建立url和程序之間的映射
3,請求類型get,put,post,patch,delete等
任何框架都離不開路由器,TP是通過地址欄規(guī)則生成,如:xxx.com/home/user/add;
2.1 路由器如何調(diào)用控制器
laravel的路由器與控制器的關系,需要明確的在/routes/web.php
文件中明確定義.
格式如下 :
基礎路由/* 當用 GET 方式訪問 xx.com/yy 這個地址的時候用匿名函數(shù)去響應 . */Route::get('/yy', function(){return '123';});/* 當用 POST 方式訪問 xx.com/zz 這個地址時,用 匿名函數(shù)去響應 . */Route::post('/zz', function(){return '123';});/* 當 GET 訪問網(wǎng)站根目錄 "/" 時,用第2個參數(shù)的匿名函數(shù)去響應 . */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個參數(shù)中的匿名函數(shù)去響應 . */Route::any('/test', function () {return 'Hello World';});注意: 如果同一個路由被寫了2次 則以最后一次路由為準!
2.2路由器與傳遞參數(shù)
/* 下例是指 xx.com/user/123 這樣的 URL,user 后面的值將會捕捉到, 并自動傳遞給控制器的方法或匿名函數(shù) */Route::get('user/{id}', function ($id) {return 'User '.$id;});/* 下例是指 xx.com/user/{name}/{id} 這樣的 URL,user 后的參數(shù), 會被捕捉到 , 并自動傳遞給控制器的方法或匿名函數(shù) */Route::get('user/{name}/{id}', function ($name, $id) {return 'user_'.$name.$id;});如果沒有傳遞參數(shù),則會報錯;2.3 傳遞可選參數(shù) 在路由 參數(shù) 的花括號最后 加上 ?(問號) 即可 Route::get('user/{name?}', function ($name = null) {return $name;});Route::get('user/{name?}', function ($name = 'John') {return $name;});
2.4 參數(shù)限制
在 TP 中,自動驗證寫在 Model 里,不夠靈活. laravel把參數(shù)限制寫在方法或者路由中.普通形式:->where('要限制的參數(shù)名','限制規(guī)則(正則,不用斜線//)');數(shù)組形式:->where(['要限制的參數(shù)名1'=>'限制規(guī)則1(正則,不用斜線//)','要限制的參數(shù)名2'=>'限制規(guī)則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]+']);注意 : 路由參數(shù)不能包含中橫線 "-",參數(shù)會被理解為變量名,所以不能有'-',下劃線是可以滴;
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
//路由傳參,可傳多個參數(shù)Route::get('user/{id}/{name}',function($id,$name){ return '路由傳參————'.$id.$name;});//路由可選參數(shù)Route::get('page/{page?}',function($page=1){ return 'page'.$page;});
3、參數(shù)類型限制app->routes->web.php
//參數(shù)類型限制Route::get('choice/{id}/{name}',function($id,$name){ return 'choice參數(shù)類型限制'.$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,簡單的說就是將用戶的請求轉(zhuǎn)發(fā)給相應的程序去處理
2,作用建立url和程序之間的映射
3,請求類型get,put,post,patch,delete等
任何框架都離不開路由器,TP是通過地址欄規(guī)則生成,如:xxx.com/home/user/add;
2.1 路由器如何調(diào)用控制器
laravel的路由器與控制器的關系,需要明確的在/routes/web.php
文件中明確定義.
格式如下 :
基礎路由/* 當用 GET 方式訪問 xx.com/yy 這個地址的時候用匿名函數(shù)去響應 . */Route::get('/yy', function(){return '123';});/* 當用 POST 方式訪問 xx.com/zz 這個地址時,用 匿名函數(shù)去響應 . */Route::post('/zz', function(){return '123';});/* 當 GET 訪問網(wǎng)站根目錄 "/" 時,用第2個參數(shù)的匿名函數(shù)去響應 . */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個參數(shù)中的匿名函數(shù)去響應 . */Route::any('/test', function () {return 'Hello World';});注意: 如果同一個路由被寫了2次 則以最后一次路由為準!
2.2路由器與傳遞參數(shù)
/* 下例是指 xx.com/user/123 這樣的 URL,user 后面的值將會捕捉到, 并自動傳遞給控制器的方法或匿名函數(shù) */Route::get('user/{id}', function ($id) {return 'User '.$id;});/* 下例是指 xx.com/user/{name}/{id} 這樣的 URL,user 后的參數(shù), 會被捕捉到 , 并自動傳遞給控制器的方法或匿名函數(shù) */Route::get('user/{name}/{id}', function ($name, $id) {return 'user_'.$name.$id;});如果沒有傳遞參數(shù),則會報錯;2.3 傳遞可選參數(shù) 在路由 參數(shù) 的花括號最后 加上 ?(問號) 即可 Route::get('user/{name?}', function ($name = null) {return $name;});Route::get('user/{name?}', function ($name = 'John') {return $name;});
2.4 參數(shù)限制
在 TP 中,自動驗證寫在 Model 里,不夠靈活. laravel把參數(shù)限制寫在方法或者路由中.普通形式:->where('要限制的參數(shù)名','限制規(guī)則(正則,不用斜線//)');數(shù)組形式:->where(['要限制的參數(shù)名1'=>'限制規(guī)則1(正則,不用斜線//)','要限制的參數(shù)名2'=>'限制規(guī)則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]+']);注意 : 路由參數(shù)不能包含中橫線 "-",參數(shù)會被理解為變量名,所以不能有'-',下劃線是可以滴;