Skip to main content

はじめに

Laravel Folioは、Bladeファイルを配置するだけでルートを定義できるページベースのルーターです。 従来の routes/web.php 中心の定義と違い、ファイルシステムの構造をそのままURLに反映できます。 コンテンツ中心のサイトや、画面ごとに素早くページを追加したい管理画面で特に有効です。 APIのように細かいHTTP制御が必要な領域は、通常のルーティングと併用するのが実践的です。

インストール

まずはComposerでFolioを追加します。
folio:install はFolioのサービスプロバイダーを登録します。 デフォルトでは resources/views/pages/ がページディレクトリになります。 複数のページディレクトリやベースURIを使い分ける場合は、サービスプロバイダーの bootFolio::path()uri() を設定します。

ルートの作成

Folioは、マウントされたディレクトリ配下のBladeファイル名からURLを自動生成します。

ネストされたルート

ディレクトリをネストすると、URLも同じ構造でネストされます。

インデックスルート

index.blade.php は、そのディレクトリのルートにマッピングされます。

ルートパラメーター

ファイル名の [] でURLセグメントを受け取れます。
複数セグメントを受け取る場合は ... を使います。

ルートモデルバインディング

[User].blade.php のようにモデル名を使うと、自動でモデル解決されます。
ソフトデリート済みモデルも扱う場合は、ページ内で withTrashed() を呼び出します。
[Post:slug].blade.php のように書くと、id 以外のキー(例: slug)でもモデル解決できます。

ミドルウェア

特定ページにだけ適用する場合は、ページテンプレート内で middleware() を使います。
複数ページへ一括適用する場合は、Folio::path(...)->middleware() を使います。

名前付きルート

Folioページにも name() でルート名を付けられます。
users/[User].blade.php のような個別ページ側で name('users.show') を定義すると、パラメーター付きURLを route('users.show', ['user' => $user]) で生成できます。
付与したルート名は route() ヘルパーでURL生成できます。

ファイルとURLの対応

従来のルーティングとの比較

Folioを使う場合でも、php artisan route:cache でルートキャッシュを有効にすると本番性能を最適化できます。
最終更新日 2026年4月16日