Skip to main content

簡介

Laravel Folio 是一款只要放置 Blade 檔案就能定義路由的頁面式路由器。 不同於傳統以 routes/web.php 為主的定義方式,它會將檔案系統的結構直接對應到 URL。 尤其適合以內容為中心的網站,或想快速新增頁面的後台。 若需要如 API 般細緻的 HTTP 控管,實務上仍建議與一般路由並用。

安裝

先透過 Composer 加入 Folio。
folio:install 會註冊 Folio 的服務提供者。 預設頁面目錄為 resources/views/pages/。 若要同時處理多個頁面目錄或不同 base URI,可在服務提供者的 boot 內以 Folio::path()uri() 進行設定。

建立路由

Folio 會由掛載目錄下的 Blade 檔名自動生成 URL。

巢狀路由

若巢狀資料夾,URL 也會依相同結構巢狀。

Index 路由

index.blade.php 會對應到該目錄的根路徑。

路由參數

在檔名中以 [] 接收 URL segment。
若要接收多個 segment,可使用 ...

路由模型繫結

若寫成 [User].blade.php 這樣使用模型名,會自動解析模型。
若想同時處理已軟刪除的模型,可在頁面內呼叫 withTrashed()
可寫成 [Post:slug].blade.php,用 id 以外的鍵(例如 slug)解析模型。

中介軟體

若只想套用到特定頁面,可在頁面樣板中呼叫 middleware()
若要一次套用到多個頁面,可使用 Folio::path(...)->middleware()

命名路由

Folio 頁面也能透過 name() 命名。
若在 users/[User].blade.php 這類單頁定義 name('users.show'),即可用 route('users.show', ['user' => $user]) 產生附參數的 URL。
有了命名,可透過 route() 輔助函式產生 URL。

檔案與 URL 對應

與傳統路由的比較

即使使用 Folio,也可透過 php artisan route:cache 啟用路由快取,最佳化正式環境效能。
最後修改於 2026年8月2日