Laravel 入門筆記(3)

Laravel 的路由定義在 routes 目錄下,默認(rèn)提供了三個文件,console.php、api.php、web.php,分別對應(yīng)了控制臺模式、api 模式和 web 網(wǎng)站三種不同模式下的路由使用。

Laravel 的路由支持任意一種 HTTP 請求方式,GET、POST、PUT、PATCH、DELETE、OPETIONS。

基本路由

只響應(yīng)一個 URI 請求的路由形式。

Route::get('hello', function (){
    return 'Hello Laravel';
})

這是一個最簡單的??,通過一個匿名函數(shù)來響應(yīng)了請求,正常情況下我們會將請求的響應(yīng)函數(shù)封裝到一個 Controller 中,然后在此處進行配置。

可以通過注冊路由來響應(yīng)任何的 HTTP 請求,GET、POST、PATCH、PUT、DELETE、OPTIONS。
如果需要注冊路由來響應(yīng)多個 HTTP 請求,可以使用 match 或 any 方法。

// 響應(yīng) get 和 post 請求
Route::match(['get', 'post'], '/', function () {
    //
});

// 響應(yīng)任意一種請求
Route::any('foo', function () {
    //
});

路由參數(shù)

在路由定義中可以設(shè)置自定義參數(shù),用戶輸入的 URL 信息根據(jù)路由拆解后,將匹配參數(shù)的內(nèi)容傳遞到回調(diào)函數(shù)中。路由參數(shù)又分為必選參數(shù)和可選參數(shù),前者是必須完全一致匹配的,后者則不一定存在,需要提供默認(rèn)參數(shù),形式如下:

// 使用必選參數(shù)
Route::get('user/{id}', function ($userId){
    return 'User-' . $userId;
});

// 使用可選參數(shù)
Route::get('user/{name?}', function ($name = null){
    return 'User name is ' . $name;
});

使用路由參數(shù)的方式可以使得一個路由能夠匹配多個 URL。
可以使用正則來對路由參數(shù)進行限制。

// 參數(shù) id 只能是數(shù)字,不能是其他字符
Route::get('user/{id}', function($id)
{
    //
})
->where('id', '[0-9]+');

命名路由

顧名思義,就是給路由起一個易于理解也易于使用的名字,為生成 URL 和重定向提供便利。

Route::get('user/profile', function (){
    return 'User Profile';
})->name('profile');

分組路由

分組路由可以為同組的路由提供相同的中間件或命名空間等共享屬性,無需再為每個路由單獨指定。

// 指定中間件,可以指定多個
Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function () {
        // 使用 Auth 中間件
    });

    Route::get('user/profile', function () {
        // 使用 Auth 中間件
    });
});

// 指定命名空間
Route::group(['namespace' => 'Admin'], function(){
    // 控制器在 "App\Http\Controllers\Admin" 命名空間下

    Route::group(['namespace' => 'User'], function(){
        // 控制器在 "App\Http\Controllers\Admin\User" 命名空間下
    });
});

// 指定路由前綴
Route::group(['prefix' => 'admin'], function () {
    Route::get('users', function () {
        // 匹配 "/admin/users" URL
    });
});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,545評論 19 139
  • 路由 路由(routing)就是通過互聯(lián)的網(wǎng)絡(luò)把信息從源地址傳輸?shù)侥康牡刂返幕顒?。路由發(fā)生在OSI網(wǎng)絡(luò)參考模型中的...
    Dearmadman閱讀 2,954評論 2 9
  • 0.1配置1.模板繼承2.控制器3.git4.支付寶支付的流程5.路由6.中間件7.請求8.laravel 學(xué)習(xí)筆...
    云龍789閱讀 882評論 0 5
  • 原文鏈接 必備品 文檔:Documentation API:API Reference 視頻:Laracasts ...
    layjoy閱讀 8,703評論 0 121
  • 又過了一年度的虐狗節(jié),朋友說,不要叫狗,要叫汪。 現(xiàn)在也是我單身4年多了,其實說長點的話,也有快10年了,我?guī)缀醪?..
    莫小黑貓閱讀 214評論 20 4

友情鏈接更多精彩內(nèi)容