首頁  >  文章  >  php框架  >  laravel路由有什麼作用

laravel路由有什麼作用

WBOY
WBOY原創
2022-04-12 15:24:202161瀏覽

在laravel中,路由的作用是將用戶的不同url請求轉發給相應的程式進行處理;路由是外界訪問laravel應用程式的通路,路由定義了Laravel的應用程式向外界提供服務的具體方式,laravel的路由定義在routes資料夾中。

laravel路由有什麼作用

本文操作環境:Windows10系統、Laravel6版、Dell G3電腦。

laravel路由有什麼作用

路由的作用就是將使用者的不同url請求轉送給對應的程式處理,laravel的路由定義在routes資料夾中,預設提供了四個路由文件,其中web.php文件定義基本頁面請求。

在laravel中,路由是外界訪問Laravel應用程式的通路,或者說路由定義了Laravel的應用程式向外界提供服務的具體方式。路由會將使用者的請求按照事先規劃的方案提交給指定的控制器和方法來處理。

基本路由

最基本的路由請求是get與post請求,laravel透過Route物件來定義不同的請求方式。例如定義一個url為'req'的get請求,返回字串'get response':

Route::get('req',function (){undefined
return 'get response';
});

當我以get的方式請求http://localhost/Laravel/laravel52/public/req時,返回如下:

laravel路由有什麼作用

同理,定義post請求時,使用Route::post(url,function(){});

多重請求路由

如果希望對多種請求方式採用相同的處理,可以使用match或any:

使用match來匹配對應的請求方式,例如當以get或post請求req2時,都會回傳match response:

Route::match(['get','post'],'req2',function (){undefined
return 'match response';
});

any會比對任意請求方式,例如以任意方式請求req3,回傳any response:

Route::any('req3',function (){undefined
return 'any response';
});

請求參數

必選參數:當以帶參數的形式發送請求時,可以在路由中進行接收,用​​大括號將參數括起,用/分割,例如:

Route::get('req4/{name}/{age}', function ($name, $age) {undefined
return "I'm {$name},{$age} years old.";
});

以get請求時會將參數傳遞,結果如下:

laravel路由有什麼作用

可選參數:以上的參數是必須的,如果缺少某一個參數就會報錯,如果希望某個參數是可選的,可以為它加一個?,並設定預設值,預設參數必須為最後一個參數,否則放中間沒法識別:

Route::get('req4/{name}/{age?}', function ($name, $age=0) {undefined
return "I'm {$name},{$age} years old.";
});

正規校驗:可以透過where對請求中的參數進行校驗

Route::get('req4/{name}/{age?}', function ($name, $age=0) {undefined
return "I'm {$name},{$age} years old.";
})->where(['name'=>'[A-Za-z]+','age'=>'[0-9]+']);

路由群組

有時我們的路由可能有多個層級,例如定義一級路由home,其下方有二級路由article, comment等,這就需要將article與comment放到home這個群組。透過陣列鍵prefix為路由article加上前綴home:

Route::group(['prefix' => 'home'], function () {undefined
Route::get('article', function () {undefined
return 'home/article';
});
});

這樣透過home/article就可以存取到該路由了。

路由命名

有時需要為路由取個名字,需要在定義路由時使用as數組鍵來指定路由名稱。例如將路由home/comment命名為comment,產生url與重定向時就可以使用路由的名字comment:

Route::get('home/comment',['as'=>'comment',function(){undefined
return route('comment'); //通过route函数生成comment对应的url
}]);

輸出為http://localhost/Laravel/laravel52/public/home/comment

【相關推薦:laravel影片教學

#

以上是laravel路由有什麼作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn