Laravel – 路由 [Route]

啥是路由 ?

如下圖:我們在瀏覽器中輸入 http://xslaravel.dev/ 我們可以訪問細說laravel網站的首頁界面,如果我們輸入 http://xslaravel.dev/users/1 呢? 我們會來到用戶個人中心的用戶頁面

上圖片中展示的這就是路由了,即路由系統會對用戶輸入的 URL 地址 進行解析,然後分配不同的工作,有點像路由器

Laravel是怎麼處理URL呢?

下圖路由中我們所看到的的那幾行代碼是項目自帶的指向歡迎界面的代碼

Route::get(‘/’, function(){

        return view(‘welcome’);

});

別小看這幾行代碼,通過這幾行代碼我們可以實現很有功能,我們慢慢道來

我們來改下上面展示的自帶的代碼

Route::get(‘xslaravel’, function(){

        return view(‘welcome’);

});

這時候再去訪問http://www.xslaravel.dev他就會報錯

大概的意思就是說我們沒有找到Url,因為我們沒有定義『/』 這條路由

此時我們在瀏覽器中訪問 http://www.xslaravel.dev/xslaravel 就可以輸出頁面了

通過上面的演示,我們應該對路由有了一個簡單的了解和認識了,那麼接下來我們來學習下基本路由

基本路由 ?

網站的大多數路由都定義在 app/Http/routes.php 文件中,這個路由文件將會被 App/Providers/RouteServiceProvider 類載入

 

最基本的 Laravel 路由僅接受 URI 和一個閉包,下面我們再定義兩條路由

 

文件位置:app/Http/routes.php

相關代碼:

app/Http/routes.php

Route::get(‘welcome’, function () {

    return view(‘welcome’);

});

Route::get(‘/’, function() {

    return ‘首頁頁面’;

});

Route::get(‘/help’, function() {

    return ‘幫助頁面’;

});

路由動作

一個Url請求有很多,如 GET POST PUT DELETE等多種類型,對應方法如下:

//該路由將匹配 post方法的 ‘/foo’ url

Route::post(‘/foo’, function() {

});

//該路由將匹配 put方法的 ‘/foo’ url

Route::put(‘/foo’, function() {

});

有時候你可能需要註冊一個可響應多個 HTTP 動作的路由。這時可通過 Route facade 的 match 方法來實現:

// 該路由將匹配 get 和 post 方法的 ‘foo’ url

Route::match([‘get’, ‘post’],’/foo’, function () {

});

甚至可以通過 any 方法來使用註冊路由並響應所有的 HTTP 動作:

 

// 該路由將匹配 所有 類型的 ‘foo’ url

Route::any(‘foo’, function () {

});

有時候你可能需要從 URI 中獲取一些參數

Route::get(‘user/{id}’, function ($id) {

return ‘User ‘.$id;

});

依照路由需要,定義任意數量的路由參數

Route::get(‘posts/{post}/comments/{comment}’, function ($postId, $commentId) {

});

當然你可以為該可選參數設定一個默認值,當 url 未傳參時,將顯示默認值

 

Route::get(‘Hi/{name?}’, function ($name = ‘devon’) {

return ‘Hi! ‘.$name;

});

路由命名

所謂命名路由,就是給路由起個名字,這樣我們就可以通過這個名字獲取到該條路由的相關信息,也更利於後期維護

 

建議在開發過程中給每個路由命名,使用下面兩種方式都可以為一個路由命名

 

名路由讓你可以更方便的為特定路由生成 URL 或進行重定向

 

Route::get(‘foo’, [‘as’ => ‘foo’, function () {

//

}]);

Route::get(‘foo’, function() {

//

})->name(‘foo’);

關於Laravel可講的其實還有很多,這裡不一一普及了,大家可以參考下官方文檔,後期也可以關注下《細說Laravel》書中會有詳細解讀

長按關注我們吧