溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Laravel之路由請(qǐng)求方式、路由傳參的示例

發(fā)布時(shí)間:2021-02-22 09:32:41 來(lái)源:億速云 閱讀:207 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹Laravel之路由請(qǐng)求方式、路由傳參的示例,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

1、路由請(qǐng)求方式____文件路徑app->routes->web.php
//get請(qǐng)求方式
Route::get('user/show',function(){
    return '世間安得兩全法,不負(fù)如來(lái)不負(fù)卿;萬(wàn)般皆是命,半點(diǎn)不由人';});
    //post請(qǐng)求方式
 Route::post('edit',function(){
    return '萬(wàn)般皆是命,半點(diǎn)不由人';}); 
    //多請(qǐng)求路由
    Route::match(['get','post'],'user/register',function(){
    return '多請(qǐng)求路由register';});
    //任意請(qǐng)求
    Route::any('user/wall'function(){
    return '任意請(qǐng)求';});
2、路由傳參app->routes->web.php
//路由傳參,可傳多個(gè)參數(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 配置虛擬主機(jī)

注意,在項(xiàng)目路徑public下
修改虛擬主機(jī)配置文件,在apache添加如下代碼:

<VirtualHost *:80>DocumentRoot "D:/xampp/htdocs/<project>/public"ServerName ddd.com</VirtualHost>host文件 127.0.0.1 ddd.com
第2章 路由器

路由簡(jiǎn)介
1,簡(jiǎn)單的說(shuō)就是將用戶的請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的程序去處理
2,作用建立url和程序之間的映射
3,請(qǐng)求類型get,put,post,patch,delete等
任何框架都離不開(kāi)路由器,TP是通過(guò)地址欄規(guī)則生成,如:xxx.com/home/user/add;
2.1 路由器如何調(diào)用控制器
laravel的路由器與控制器的關(guān)系,需要明確的在/routes/web.php
文件中明確定義.
格式如下 :

基礎(chǔ)路由/*
當(dāng)用 GET 方式訪問(wèn) xx.com/yy 這個(gè)地址的時(shí)候用匿名函數(shù)去響應(yīng) .
*/Route::get('/yy', function(){return '123';});/*
當(dāng)用 POST 方式訪問(wèn) xx.com/zz 這個(gè)地址時(shí),用 匿名函數(shù)去響應(yīng) .
*/Route::post('/zz', function(){return '123';});/*
當(dāng) GET 訪問(wèn)網(wǎng)站根目錄 "/" 時(shí),用第2個(gè)參數(shù)的匿名函數(shù)去響應(yīng) .
*/Route::get('/', function () {return 'hello';})多請(qǐng)求路由/*
不管是GET還是POST方法,訪問(wèn) xx.com/user 時(shí),都用 XxController 中的 method() 方法去響應(yīng) .
*/Route::match(['get','post'] , '/user' , 'XxController@method')/*
GET,POST,PUT,DELETE.. 任何方法訪問(wèn) xx.com/test, 都用第2個(gè)參數(shù)中的匿名函數(shù)去響應(yīng) .
*/Route::any('/test', function () {return 'Hello World';});注意: 如果同一個(gè)路由被寫(xiě)了2次
則以最后一次路由為準(zhǔn)!
2.2路由器與傳遞參數(shù)
/*
下例是指 xx.com/user/123 這樣的 URL,user 后面的值將會(huì)捕捉到,
并自動(dòng)傳遞給控制器的方法或匿名函數(shù)
*/Route::get('user/{id}', function ($id) {return 'User '.$id;});/*
下例是指 xx.com/user/{name}/{id} 這樣的 URL,user 后的參數(shù),
會(huì)被捕捉到 , 并自動(dòng)傳遞給控制器的方法或匿名函數(shù)
*/Route::get('user/{name}/{id}', function ($name, $id) {return 'user_'.$name.$id;});如果沒(méi)有傳遞參數(shù),則會(huì)報(bào)錯(cuò);2.3 傳遞可選參數(shù)
在路由 參數(shù) 的花括號(hào)最后 加上 ?(問(wèn)號(hào)) 即可
Route::get('user/{name?}', function ($name = null) {return $name;});Route::get('user/{name?}', function ($name = 'John') {return $name;});
2.4 參數(shù)限制
在 TP 中,自動(dòng)驗(yàn)證寫(xiě)在 Model 里,不夠靈活. laravel把參數(shù)限制寫(xiě)在方法或者路由中.普通形式:->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ù)會(huì)被理解為變量名,所以不能有'-',下劃線是可以滴;

1、路由請(qǐng)求方式____文件路徑app->routes->web.php

//get請(qǐng)求方式Route::get('user/show',function(){
    return '世間安得兩全法,不負(fù)如來(lái)不負(fù)卿;萬(wàn)般皆是命,半點(diǎn)不由人';});//post請(qǐng)求方式
 Route::post('edit',function(){
    return '萬(wàn)般皆是命,半點(diǎn)不由人';}); //多請(qǐng)求路由Route::match(['get','post'],'user/register',function(){
    return '多請(qǐng)求路由register';});//任意請(qǐng)求Route::any('user/wall'function(){
    return '任意請(qǐng)求';});
2、路由傳參app->routes->web.php
//路由傳參,可傳多個(gè)參數(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 配置虛擬主機(jī)

注意,在項(xiàng)目路徑public下
修改虛擬主機(jī)配置文件,在apache添加如下代碼:

<VirtualHost *:80>DocumentRoot "D:/xampp/htdocs/<project>/public"ServerName ddd.com</VirtualHost>host文件 127.0.0.1 ddd.com
第2章 路由器

路由簡(jiǎn)介
1,簡(jiǎn)單的說(shuō)就是將用戶的請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的程序去處理
2,作用建立url和程序之間的映射
3,請(qǐng)求類型get,put,post,patch,delete等
任何框架都離不開(kāi)路由器,TP是通過(guò)地址欄規(guī)則生成,如:xxx.com/home/user/add;
2.1 路由器如何調(diào)用控制器
laravel的路由器與控制器的關(guān)系,需要明確的在/routes/web.php
文件中明確定義.
格式如下 :

基礎(chǔ)路由/*
當(dāng)用 GET 方式訪問(wèn) xx.com/yy 這個(gè)地址的時(shí)候用匿名函數(shù)去響應(yīng) .
*/Route::get('/yy', function(){return '123';});/*
當(dāng)用 POST 方式訪問(wèn) xx.com/zz 這個(gè)地址時(shí),用 匿名函數(shù)去響應(yīng) .
*/Route::post('/zz', function(){return '123';});/*
當(dāng) GET 訪問(wèn)網(wǎng)站根目錄 "/" 時(shí),用第2個(gè)參數(shù)的匿名函數(shù)去響應(yīng) .
*/Route::get('/', function () {return 'hello';})多請(qǐng)求路由/*
不管是GET還是POST方法,訪問(wèn) xx.com/user 時(shí),都用 XxController 中的 method() 方法去響應(yīng) .
*/Route::match(['get','post'] , '/user' , 'XxController@method')/*
GET,POST,PUT,DELETE.. 任何方法訪問(wèn) xx.com/test, 都用第2個(gè)參數(shù)中的匿名函數(shù)去響應(yīng) .
*/Route::any('/test', function () {return 'Hello World';});注意: 如果同一個(gè)路由被寫(xiě)了2次
則以最后一次路由為準(zhǔn)!
2.2路由器與傳遞參數(shù)
/*
下例是指 xx.com/user/123 這樣的 URL,user 后面的值將會(huì)捕捉到,
并自動(dòng)傳遞給控制器的方法或匿名函數(shù)
*/Route::get('user/{id}', function ($id) {return 'User '.$id;});/*
下例是指 xx.com/user/{name}/{id} 這樣的 URL,user 后的參數(shù),
會(huì)被捕捉到 , 并自動(dòng)傳遞給控制器的方法或匿名函數(shù)
*/Route::get('user/{name}/{id}', function ($name, $id) {return 'user_'.$name.$id;});如果沒(méi)有傳遞參數(shù),則會(huì)報(bào)錯(cuò);2.3 傳遞可選參數(shù)
在路由 參數(shù) 的花括號(hào)最后 加上 ?(問(wèn)號(hào)) 即可
Route::get('user/{name?}', function ($name = null) {return $name;});Route::get('user/{name?}', function ($name = 'John') {return $name;});
2.4 參數(shù)限制
在 TP 中,自動(dòng)驗(yàn)證寫(xiě)在 Model 里,不夠靈活. laravel把參數(shù)限制寫(xiě)在方法或者路由中.普通形式:->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ù)會(huì)被理解為變量名,所以不能有'-',下劃線是可以滴;

以上是“Laravel之路由請(qǐng)求方式、路由傳參的示例”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI