目錄
為什麼使用Route Groups?
如何定義一個Route Group?
常見配置項及使用場景
1. 路由前綴(prefix)
2. 中間件(middleware)
3. 命名空間(namespace)
4. 子域名路由(domain)
嵌套路由組(Nested Groups)
小貼士:命名路由組注意事項
首頁 php框架 Laravel 如何定義和使用Laravel中的路線組。

如何定義和使用Laravel中的路線組。

Jul 21, 2025 am 02:15 AM
laravel 路由群組

Laravel 中的Route Groups 用於統一配置和管理多個共享設置的路由,以減少重複代碼並提高可讀性。通過Route Groups 可集中處理中間件、命名空間、路由前綴、子域名綁定等配置,例如:1. 使用prefix 設置路由前綴,常用於API 或後台路徑;2. 通過middleware 統一應用中間件;3. 利用namespace 簡化控制器調用;4. 使用domain 實現子域名路由;5. 支持嵌套路由組實現更細粒度控制;6. 配合as 參數為路由命名提供統一前綴,提升維護效率。

How to define and use Route Groups in Laravel.

在Laravel 中,Route Groups 是一種非常實用的功能,它允許你對一組路由進行統一的配置和管理。通過Route Groups,你可以集中處理中間件、命名空間、路由前綴、子域名綁定等設置,避免重複代碼,提高代碼可讀性和維護性。

How to define and use Route Groups in Laravel.

為什麼使用Route Groups?

在實際開發中,我們經常會遇到多個路由共享相同配置的情況,比如:

  • 多個後台管理頁面都需要authadmin中間件
  • API 路由通常都以/api開頭
  • 前台頁面都使用App\Http\Controllers\HomeController這樣的命名空間

如果你一個個路由單獨寫配置,不僅重複,而且容易出錯。使用Route Groups 後,這些配置就可以統一設置,只寫一次。

How to define and use Route Groups in Laravel.

如何定義一個Route Group?

Laravel 的路由組使用Route::group()方法定義,傳入一個數組作為配置項,然後是一個閉包來定義該組內的所有路由。

 Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function () {
    Route::get('dashboard', [AdminController::class, 'dashboard']);
    Route::get('users', [AdminController::class, 'users']);
});

上面這段代碼定義了一個路由組,所有組內的路由都會自動帶上/admin前綴,並應用auth中間件。

How to define and use Route Groups in Laravel.

常見配置項及使用場景

1. 路由前綴(prefix)

適用於API 或後台管理頁面。例如:

 Route::group(['prefix' => 'api/v1'], function () {
    Route::get('users', [UserController::class, 'index']);
});

訪問路徑為: /api/v1/users

2. 中間件(middleware)

可以為一組路由統一設置中間件:

 Route::group(['middleware' => ['auth', 'admin']], function () {
    Route::get('admin/dashboard', [AdminController::class, 'dashboard']);
});

3. 命名空間(namespace)

如果你的控制器分佈在不同的目錄中,可以使用命名空間:

 Route::group(['namespace' => 'Admin', 'prefix' => 'admin'], function () {
    Route::get('settings', [SettingsController::class, 'index']);
});

這樣就可以直接寫SettingsController::class ,而不用寫完整的命名空間。

4. 子域名路由(domain)

適用於多租戶或子站點:

 Route::group(['domain' => '{account}.example.com'], function () {
    Route::get('users', [UserController::class, 'index']);
});

嵌套路由組(Nested Groups)

你還可以在路由組中再嵌套一個路由組,實現更細粒度的控制:

 Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function () {
    Route::group(['namespace' => 'Settings'], function () {
        Route::get('profile', [ProfileController::class, 'index']);
        Route::get('email', [EmailController::class, 'index']);
    });
});

這樣/admin/profile/admin/email都會繼承prefixmiddleware ,同時控制器使用Settings子命名空間。


小貼士:命名路由組注意事項

如果你希望給組內的路由命名,建議使用as參數為路由組設置前綴:

 Route::group(['prefix' => 'admin', 'as' => 'admin.'], function () {
    Route::get('dashboard', [AdminController::class, 'dashboard'])->name('dashboard');
});

這樣你可以通過route('admin.dashboard')來調用,命名更清晰,也方便維護。


基本上就這些。 Route Groups 的核心是“復用”和“分組管理”,雖然寫法簡單,但用好了能顯著提昇路由的可維護性。

以上是如何定義和使用Laravel中的路線組。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1604
29
PHP教程
1510
276
Laravel中的配置緩存是什麼? Laravel中的配置緩存是什麼? Jul 27, 2025 am 03:54 AM

Laravel的配置緩存通過合併所有配置文件為一個緩存文件來提升性能。在生產環境中啟用配置緩存可減少每次請求時的I/O操作和文件解析,從而加快配置加載速度;1.應在部署應用、配置穩定且無需頻繁更改時啟用;2.啟用後修改配置需重新運行phpartisanconfig:cache才會生效;3.避免在配置文件中使用依賴運行時條件的動態邏輯或閉包;4.排查問題時應先清除緩存、檢查.env變量並重新緩存。

如何在Laravel測試中模擬對象? 如何在Laravel測試中模擬對象? Jul 27, 2025 am 03:13 AM

UseMockeryforcustomdependenciesbysettingexpectationswithshouldReceive().2.UseLaravel’sfake()methodforfacadeslikeMail,Queue,andHttptopreventrealinteractions.3.Replacecontainer-boundserviceswith$this->mock()forcleanersyntax.4.UseHttp::fake()withURLp

如何在Laravel中實施推薦系統? 如何在Laravel中實施推薦系統? Aug 02, 2025 am 06:55 AM

創建referrals表記錄推薦關係,包含推薦人、被推薦人、推薦碼及使用時間;2.在User模型中定義belongsToMany和hasMany關係以管理推薦數據;3.用戶註冊時生成唯一推薦碼(可通過模型事件實現);4.註冊時通過查詢參數捕獲推薦碼,驗證後建立推薦關係並防止自薦;5.當被推薦用戶完成指定行為(如下單)時觸發獎勵機制;6.生成可分享的推薦鏈接,可使用Laravel簽名URL增強安全性;7.在儀表板展示推薦統計信息,如總推薦數和已轉化數;必須確保數據庫約束、會話或Cookie持久化、

如何運行Laravel項目? 如何運行Laravel項目? Jul 28, 2025 am 04:28 AM

checkphp> = 8.1,作曲家和韋伯佛; 2.cleteproeateprojectandruncomposerinstall; 3.copy.env.exampleto.envandrunphpartisankey :生成; 4.setDatabasecredentialsin.envandrunphpartisanmigrate-seed; 5.StartServerServerWithPhpartisanServe; 6.optionallyrunnnpmins

如何在Laravel中播種數據庫? 如何在Laravel中播種數據庫? Jul 28, 2025 am 04:23 AM

創建seeder文件:使用phpartisanmake:seederUserSeeder生成seeder類,並在run方法中通過模型工廠或數據庫查詢插入數據;2.在DatabaseSeeder中調用其他seeder:通過$this->call()按順序註冊UserSeeder、PostSeeder等,確保依賴關係正確;3.運行seeder:執行phpartisandb:seed運行所有註冊的seeder,或使用phpartisanmigrate:fresh--seed重置並重新填充數據;4

如何使用Laravel構建REST API? 如何使用Laravel構建REST API? Jul 30, 2025 am 03:41 AM

創建新Laravel項目並啟動服務;2.生成模型、遷移和控制器並運行遷移;3.在routes/api.php中定義RESTful路由;4.在PostController中實現增刪改查方法並返回JSON響應;5.使用Postman或curl測試API功能;6.可選地通過Sanctum添加API認證;最終得到一個結構清晰、功能完整且可擴展的LaravelRESTAPI,適用於實際應用。

如何在Laravel應用中實現功能標誌? 如何在Laravel應用中實現功能標誌? Jul 30, 2025 am 01:45 AM

Chooseafeatureflagstrategysuchasconfig-based,database-driven,orthird-partytoolslikeFlagsmith.2.Setupadatabase-drivensystembycreatingamigrationforafeature_flagstablewithname,enabled,andrulesfields,thenrunthemigration.3.CreateaFeatureFlagmodelwithfilla

Laravel的存儲庫合同是什麼? Laravel的存儲庫合同是什麼? Aug 03, 2025 am 12:10 AM

Repository模式是一種設計模式,用於解耦業務邏輯與數據訪問邏輯。 1.它通過接口(Contract)定義數據訪問方法;2.具體操作由Repository類實現;3.控制器通過依賴注入使用接口,不直接接觸數據源;4.優勢包括代碼整潔、可測試性強、便於維護和團隊協作;5.適用於中大型項目,小型項目可直接使用模型。

See all articles