ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
ルート一覧コマンドの基本
Laravel では、アプリケーションに登録された全 HTTP ルートを 1 つのテーブルとして一覧表示する Artisan コマンドが用意されています。
php artisan route:list出力例(Laravel 10 以降の新スタイル)は次のようになります。
$ php artisan route:list
GET|HEAD / ........... home
GET|HEAD login ......... login
POST login
POST logout .......... logout
POST password/email .. password.email
GET|HEAD password/reset password.request
POST password/reset
GET|HEAD password/reset/{token} ... password.reset
GET|HEAD register ........ register
POST register
GET|HEAD api/user App\Http\Controllers\HomeController@index
Showing [10] routes列にはそれぞれ HTTP メソッド・URI・ルート名・コントローラのアクション・ミドルウェアが表示されます。
絞り込みオプション
中〜大規模アプリではルート数が数百を超えるため、フィルタオプションで必要なルートだけ抽出するのが実用的です。
| オプション | 説明 |
|---|---|
--path= | URI の部分一致で絞り込み |
--name= | ルート名の部分一致で絞り込み |
--method= | 指定 HTTP メソッドのみ |
--except-vendor | vendor 配下(ベンダーが提供する)ルートを除外 |
--only-vendor | vendor 配下のルートだけ表示 |
--except-path= | 指定パスを除外 |
--columns= | 表示する列を絞り込み(method,uri,name,action,middleware) |
--reverse / -r | 逆順で表示 |
--sort= | uri / method / name / action / middleware で並び替え |
--json | JSON で出力(パイプ処理向け) |
使用例
# /api/ で始まるルートだけ
php artisan route:list --path=api
# POST メソッドだけ
php artisan route:list --method=POST
# ベンダーのルートを隠して自分のアプリのルートだけ表示
php artisan route:list --except-vendor
# 名前付きルートで auth を含むものだけ
php artisan route:list --name=auth
# 列を絞ってシンプルに
php artisan route:list --columns=method,uri,name
JSON 出力
CI でルートの増減を差分検知したい場合などは、--json オプションで機械可読な出力が得られます。
php artisan route:list --json > routes.json
# jq で必要なフィールドだけ抽出
php artisan route:list --json | jq '.[] | {method,uri,name}'
ルートキャッシュとの関係
本番環境ではルート定義の読み込みを高速化するためにキャッシュを使います。
# キャッシュ生成(デプロイ時に実行)
php artisan route:cache
# キャッシュをクリア
php artisan route:clearキャッシュ後はクロージャベースのルート定義が使えなくなる点に注意してください。本番でキャッシュを使うなら、すべてのルートをコントローラ参照([Controller::class, 'method'])として定義する必要があります。
キャッシュが効いている状態でも route:list はキャッシュから読んで表示できます。デプロイ後にルートが意図通りに登録されているか確認するときに便利です。
ルート定義の場所
ルートは routes/ ディレクトリ配下に置かれ、Laravel が起動時に読み込みます。代表的なファイルは次の通りです。
| ファイル | 用途 |
|---|---|
routes/web.php | セッション/CSRF を使う通常の Web ルート |
routes/api.php | API 用ルート(/api プレフィックスが自動付与) |
routes/console.php | Artisan の独自コマンドをクロージャで定義 |
routes/channels.php | ブロードキャストチャネル定義 |
route:list でよく見るトラブル
1. 期待したルートが表示されない
- ルートファイルが読み込まれていない(
RouteServiceProvider確認) - ミドルウェアグループの設定ミス
route:cacheでキャッシュされた古い定義を表示している →route:clearで解消
2. 同じ URI に対して複数ルートが定義されている
同じパス・メソッドの組み合わせに複数のルートを定義すると、後勝ちで上書きされます。route:list で重複の有無を確認すると気付きやすいです。
ルート名 (Named Routes) の重要性
各ルート定義に ->name('users.show') のように名前を付けておくと、URL を直書きせずに route('users.show', ['id' => 1]) でリンクや遷移先 URL を生成できます。URL 構造を後から変更しても、ルート名のままならテンプレートやコントローラを書き換える必要がなく、保守性が大幅に向上します。route:list --name= オプションで名前付きルート一覧を素早く確認できるため、リファクタリング前後でのルート差分チェックにも活用できます。Laravel チュートリアルでは省略されがちですが、本番アプリでは命名規則を最初から徹底するのが圧倒的に楽です。
ミドルウェアの確認
route:list の右端列に表示されるミドルウェアは、そのルートへリクエストが届いたときに通過する処理の連鎖です。代表的なものに web(セッション・CSRF・暗号化 Cookie)、auth(未ログイン時にリダイレクト)、throttle:60,1(レート制限)、verified(メール認証必須)などがあります。本番で「ログインしていないのに認証必須ページに入れてしまう」「CSRF が効いていない」といった事故が起きたときは、まず route:list で対象ルートのミドルウェアを確認し、想定通りのスタックになっているかを検証するのが診断の第一歩です。
API リソースルート
REST API でよく使われる CRUD 7 操作(index / create / store / show / edit / update / destroy)は、Route::resource('posts', PostController::class) の一行で一度に登録できます。これらは route:list 上ではすべて別ルートとして展開されて表示されるため、リソースが何個登録されているか、命名規則は揃っているかを目視で確認できます。API 専用なら apiResource() を使うとブラウザ向けのフォームルート(create / edit)が省かれた 5 操作だけになります。プロジェクトが大きくなるにつれて、リソース型を活用するか個別ルートを書き続けるかが運用負荷に直結するため、早めに方針を決めておくと良いでしょう。
route:list を CI で活用する
大規模プロジェクトでは、リファクタリング時にうっかりルートを増減させてしまう事故を防ぐため、CI で route:list --json の出力をスナップショットとして保存しておくのが有効です。プルリクエストごとに差分を比較し、意図しないルートの追加・削除があれば警告するワークフローを組めば、設計と実装の整合性を継続的に確認できます。OpenAPI ドキュメントの自動生成と組み合わせると、フロントエンドや外部チームへのインタフェース公開も自動化できます。
パラメータとモデルバインディング
ルート定義で /users/{user} のように波括弧で囲った部分は、URL からパラメータとして取り出せます。route:list 上ではこのプレースホルダがそのまま表示されるため、どのパラメータをどこで受け取るかが一目で分かります。Laravel のルートモデルバインディングを使うと、{user} を App\Models\User 型として自動解決し、コントローラの引数にそのまま User インスタンスが渡ります。これにより、各アクションの冒頭で行いがちな findOrFail($id) をすべて省略でき、コードが大幅にすっきりします。バインディングが見つからなければ自動で 404 を返してくれる点も実装漏れ防止に役立ちます。
ドメインとサブドメインのルーティング
マルチテナント SaaS では、{tenant}.example.com のようにサブドメインごとにテナントを分けたいケースがあります。Laravel では Route::domain('{tenant}.example.com')->group(...) でサブドメインごとのルートグループを定義でき、route:list ではドメインの違いも明示的に列に表示されます。マルチドメインで複数アプリケーションを 1 つのコードベースで動かすときは、ドメインフィルタが指定できることで実装と確認の両面で大いに助かります。
API バージョニング
API を運用していると、後方互換性を保ったまま新バージョンを並行公開したい場面が出てきます。routes/api.php 内で Route::prefix('v1')->group(...) と Route::prefix('v2')->group(...) を併存させる方式が定番で、route:list --path=v2 のように特定バージョンのルートだけ確認できます。クライアントの移行が完了した時点で旧バージョンのルートを削除すれば、段階的なバージョンアップが安全に進められます。
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?