Wayfinderとは
Laravel Wayfinder は、LaravelバックエンドとTypeScriptフロントエンドをゼロフリクションで橋渡しするパッケージです。コントローラーとルートから完全に型付けされたTypeScript関数を自動生成するため、フロントエンドのコードからLaravelのエンドポイントを関数として直接呼び出せます。 URLのハードコーディング、ルートパラメーターの手動管理、バックエンド変更の手作業同期——これらがすべて不要になります。WayfinderはBeta版です(現在 v0.1.x)。v1.0.0 のリリースまでに API が変更される可能性があります。重要な変更はすべて CHANGELOG に記録されます。
ZiggyとWayfinderの違い
Ziggyとは
Ziggy は長年にわたってLaravelエコシステムで広く使われてきたルートヘルパーです。Laravelのルート定義をJavaScript側に公開し、route('posts.show', { id: 1 }) のような形でURLを生成できました。
なぜWayfinderに置き換えられたか
Ziggyはルート名とパラメーターを文字列で扱うため、TypeScriptとの相性に限界がありました。ルート名のタイポや間違ったパラメーター名はランタイムエラーにしかなりません。 WayfinderはTypeScriptファーストの設計で、コントローラーのメソッドを インポート可能な関数 として生成します。
Inertia ベースのLaravelスターターキット(React・Vue・Svelte)では、Wayfinder が標準で採用されています。
インストール
1. Composerでサーバーサイドパッケージをインストール
2. NPMでViteプラグインをインストール
3. vite.config.js にプラグインを追加
TypeScript定義ファイルの生成
wayfinder:generate コマンドで TypeScript ファイルを生成します。
resources/js 以下に3つのディレクトリが生成されます。
--path オプションを使います。
基本的な使い方
アクションのインポートと使用
PostController の show メソッドに対応するURLを生成する例です。
.url() を使います。
パラメーターの渡し方
Wayfinder の関数はさまざまな形式のパラメーターを受け付けます。/posts/{post:slug}) はその値を使えます。
コントローラー全体のインポート
コントローラー全体をインポートしてメソッドを呼び出すこともできます。単一アクションコントローラー
単一アクションコントローラー(Invokable Controller)は、インポートした関数をそのまま呼び出します。名前付きルートのインポート
ルート名でアクセスするにはroutes/ 配下のファイルを使います。
クエリパラメーター
すべてのWayfinder関数はquery オプションでクエリパラメーターを追加できます。
mergeQuery を使います。
フォームバリアント
従来のHTMLフォームで使う場合は--with-form オプションを付けて生成し、.form バリアントを使います。
InertiaとWayfinderの組み合わせ
InertiaのフォームヘルパーとWayfinderを組み合わせると、URLの文字列を一切書かずにフォーム送信ができます。Link コンポーネントでも同様に使えます。
スターターキットでの採用
laravel new で新規プロジェクトを作成し、React・Vue・Svelteを選ぶと、Wayfinderが自動セットアップされた構成が提供されます。スターターキットには以下が含まれます。
- Composerパッケージ
laravel/wayfinder - NPMパッケージ
@laravel/vite-plugin-wayfinder vite.config.jsにプラグイン設定済み.gitignoreに生成ディレクトリ追加済み
予約語と競合するメソッド名の処理
delete や import など、JavaScriptの予約語と同名のコントローラーメソッドには Method サフィックスが付きます。
現在の状況(v0.1.x)
現在の安定版はv0.1.x ブランチで提供されています。2026年3月時点の最新バージョンは v0.1.15 です。
v0.1.x 系の主な変更履歴
nextブランチで開発中の次世代機能
next ブランチでは、現在の v0.1.x から大幅に機能が拡張された次期バージョンが開発されています。
生成される TypeScript の範囲が大幅に拡大
v0.1.x がルートとコントローラーアクションのみを対象としているのに対し、次期バージョンは以下をすべて TypeScript として生成します。Form Request の TypeScript 型生成
Eloquent モデルの型生成
types.d.ts に型が生成されます。
PHP Enum の TypeScript 変換
出力ディレクトリの変更
v0.1.x ではactions/、routes/、wayfinder/ の3ディレクトリに分かれていましたが、次期バージョンでは resources/js/wayfinder 以下にまとめられます。
v0.1.x から next への主な変更点
- インポートパスが
@/actions/...から@/wayfinder/...に変更 --skip-actions、--skip-routes、--with-formフラグが廃止され、設定ファイルへ移行types.tsがtypes.d.tsに変更
まとめ
Laravel Wayfinder は、Ziggyが提供していた「LaravelのルートをJavaScriptから参照する」という機能を、TypeScriptファーストで再設計したパッケージです。生成された関数をインポートして使うアプローチにより、型安全性・IDEサポート・ツリーシェイキングのすべてで大きく改善しています。 現在の v0.1.x でもルートとコントローラーアクションの型安全な参照が実現できており、InertiaベースのLaravelスターターキットで標準採用されています。next ブランチで開発中の次期バージョンでは、Form Request・Eloquent モデル・Enum・Inertia ページプロップまで TypeScript として生成する、より包括的な型安全基盤へと進化する予定です。
Laravel Wayfinder GitHub
ソースコード、CHANGELOG、Issue はこちら。
Vite Plugin Wayfinder
Viteプラグインの設定オプション詳細はこちら。