カテゴリ: Laravel 更新日: 2025/12/23

LaravelでルートをBladeテンプレートに記述する方法(route関数)

LaravelでルートをBladeテンプレートに記述する方法(route関数)
LaravelでルートをBladeテンプレートに記述する方法(route関数)

先生と生徒の会話形式で理解しよう

生徒

「Laravelでリンクやフォームの送信先を指定するとき、どうやって正しいURLを書くんですか?」

先生

「Laravelでは、route関数を使うことで、ルート名から正しいURLを簡単に取得できます。これにより、URLが変わってもリンクが切れないように管理できますよ。」

生徒

「route関数って何ですか?どうやってBladeテンプレートで使うんですか?」

先生

「では、具体的な使い方を見ながら説明しますね。」

1. route関数とは?

1. route関数とは?
1. route関数とは?

Laravelのroute関数は、ルーティングで名前をつけたルート(道)から対応するURLを自動で作ってくれる便利な関数です。
「/home」や「/user/list」といった文字列のURLをそのまま書くのではなく、「home」「user.index」のようにルート名だけを書いておけば、Laravelが正しいURLに変換してくれます。

イメージとしては、「住所そのもの(URL)」ではなく「住所につけたラベル(ルート名)」を使って目的地を探してもらう感じです。実際のURLがあとから変わっても、ラベル(ルート名)が同じなら、常に正しいURLにたどり着けます。


// ルート名 "home" からURL文字列を取得する例
$url = route('home');      // 例: "https://example.com/home" のようなURLが入る

// この $url をリンクやリダイレクトに利用できる

このように、route関数を使うことで、リンク先やフォームの送信先を「文字列のURL」ではなく「ルート名」で指定できます。URLの構造を変更したくなったときも、ルーティング設定側だけを修正すればよく、Bladeテンプレート側のリンクを書き換える必要がほとんどなくなります。

結果として、「Laravelのルーティング設定」と「BladeテンプレートでのURL指定」がきれいに分かれ、コードの見通しが良くなり、保守もしやすくなります。詳しいルート名の付け方やBladeでの具体的な書き方は、このあと順番に見ていきましょう。

2. ルートに名前を付ける方法

2. ルートに名前を付ける方法
2. ルートに名前を付ける方法

まず、Laravelのルートはroutes/web.phpというファイルにまとめて書きます。
「どのURLにアクセスされたときに、どの画面(ビュー)や処理を呼び出すか」を決める設定表のようなイメージです。

ルートに名前を付けるときは、ルート定義の最後に->name('ルート名')をつなげます。ルート名は、「home」「post.show」のような分かりやすい文字列にしておくと、Bladeテンプレートから呼び出すときにも見つけやすくなります。


// routes/web.php に書く例

// 「/home」にアクセスされたら home ビューを表示する
Route::get('/home', function () {
    return view('home');   // resources/views/home.blade.php を表示
})->name('home');          // このルートに「home」という名前を付ける

この例では、URL「/home」にアクセスするルートに「home」という名前を付けています。
あとから/home/topなど別のURLに変えたくなっても、Route::get('/top', ...)のようにルート定義だけを変更すれば、ルート名「home」はそのまま使えます。


// URL を変えたくなったときのイメージ

Route::get('/top', function () {
    return view('home');
})->name('home');  // ルート名は同じ「home」のまま

画面側(Bladeテンプレート側)では、この「home」というルート名だけを頼りにURLを生成できます。つまり、テンプレートには生のURL文字列を書かずに済むので、「どこに飛ぶリンクなのか」がルート名だけで理解しやすくなり、Laravelのアプリ全体を整理された状態で保ちやすくなります。

このあと解説するroute関数と組み合わせることで、「ルート名からURLを作る」という流れがより分かりやすくなります。その前提として、ここでは「ルートには必ず分かりやすい名前を付けておく」と覚えておきましょう。

3. Bladeテンプレートでroute関数を使う方法

3. Bladeテンプレートでroute関数を使う方法
3. Bladeテンプレートでroute関数を使う方法

Bladeテンプレートでリンクを作るとき、まず思い浮かぶのはタグのhrefにURLを書き込む方法だと思います。
しかし、この方法だとURLを変更したいときに、テンプレート内のリンクをすべて探して修正しないといけません。ページ数が多いほど負担も大きくなります。

そこで便利なのがroute関数です。ルート名を指定するだけで、Laravelが正しいURLを自動で生成してくれるので、テンプレート側では「どのページへ飛ばしたいか」を名前で指定するだけで済みます。URLを直接書かないため、アプリ全体のURL構成を変えてもリンク切れを心配する必要がありません。


<a href="{{ route('home') }}">ホームへ移動</a>

このように書くだけで、「home」というルート名に対応するURLが自動で生成されます。
例えば、ルート側のURLが「/home」から「/top」に変わっても、テンプレートに変更は必要ありません。route関数は常に最新のルーティング設定を参照してくれるため、管理がとても楽になります。

また、プログラミングが初めての方にとっても、URLの文字列そのものを書くのではなく「どのページ(ルート名)へ行くか」を指定するだけで済むため、記述が直感的で分かりやすいというメリットがあります。アプリが成長してページが増えても、リンクが整理されて見やすい状態を保ちやすくなります。

4. route関数の引数でパラメータを渡す方法

4. route関数の引数でパラメータを渡す方法
4. route関数の引数でパラメータを渡す方法

次は、URLの一部に「ID」などの値を含めたい場合の書き方です。
例えば、ブログの記事詳細ページでは「どの記事を表示するのか」を区別するために、URLに記事IDを含めることがよくあります。


// 記事IDを受け取るルートの例
Route::get('/post/{id}', function ($id) {
    return "記事IDは {$id} です";
})->name('post.show');

/post/{id}{id} の部分が「パラメータ」と呼ばれる場所です。
ここには、実際にアクセスするときに「1」や「10」などの具体的な数字が入ります。LaravelはURLの数字を自動的に取り出して、コールバック関数の$idに渡してくれます。

このルートにリンクでアクセスしたいときは、route関数の第2引数としてパラメータを配列で渡します。配列のキーには{ }の中の名前(この例ではid)を指定します。


<a href="{{ route('post.show', ['id' => 10]) }}">記事10の詳細を見る</a>

このように書くと、実際のURLは「/post/10」となります。
「10」の部分だけを変えれば、違う記事の詳細ページにも簡単にリンクできます。たとえば、記事一覧画面で記事ごとにリンクを作りたい場合は、次のように変数を使うこともできます。


{{-- $post という変数に記事データが入っているイメージ --}}
<a href="{{ route('post.show', ['id' => $post->id]) }}">
    {{ $post->title }} の詳細へ
</a>

このように、ルート側で/post/{id}のようにパラメータ付きのパスを用意しておき、Bladeテンプレート側ではroute('post.show', ['id' => 値])という形で値を渡す、というのがLaravelでの基本的な書き方です。数字や文字列を直接URLにくっつけるのではなく、route関数に任せることで、URL生成を安全かつ分かりやすく扱えるようになります。

5. フォームのaction属性にもroute関数を使う

5. フォームのaction属性にもroute関数を使う
5. フォームのaction属性にもroute関数を使う

リンクだけでなく、フォームを送信するときのaction属性にもroute関数を使うことができます。フォームでは「どのURLにデータを送るか」を必ず指定しますが、ここでもURLを手書きしてしまうと、後からURLを変更したいときに修正箇所が増えてしまいます。

そのため、フォームでもルート名を使ってURLを指定する方が、管理がとても楽になります。特に、アプリが大きくなるとフォームの数も増えてくるため、毎回URLを覚えて書くより、分かりやすいルート名で管理するほうが安全で確実です。


<form method="POST" action="{{ route('post.show', ['id' => 10]) }}">
    @csrf
    <button type="submit">送信</button>
</form>

この場合、フォームはpost.showというルートへ送信され、id=10の情報がURLに含まれます。URLが「/post/10」であっても「/article/10」であっても、ルート定義側を変更すれば、フォーム側のコードはそのままで正しいURLに自動で切り替わります。

また、これまでのサンプルと同じように、変数を使って動的に送信先を変えることもできます。たとえば編集画面や詳細画面で「投稿IDごとにフォームの送信先を変えたい」という場面でも、route関数ならシンプルに書けます。


{{-- $post のIDを使って送信先を切り替えるイメージ --}}
<form method="POST" action="{{ route('post.show', ['id' => $post->id]) }}">
    @csrf
    <button type="submit">この投稿を送信</button>
</form>

フォームはユーザーがデータを送信する入口となる重要な部分です。URLを直接書くよりも、route関数でルート名を指定しておけば、後からURL構造を変えてもフォームが壊れず、安心してメンテナンスできるようになります。

6. route関数を使うメリット

6. route関数を使うメリット
6. route関数を使うメリット
  • URLを直接書かずに済むので、後からURLを変えてもリンクが切れない
  • コードが見やすく、どのルートにアクセスしているか分かりやすい
  • パラメータ付きのURLも簡単に生成できる
  • Laravelのルーティング機能を活用して安全にURL管理ができる

7. 覚えておきたいポイント

7. 覚えておきたいポイント
7. 覚えておきたいポイント
  • ルートに名前を付けるには->name('ルート名')を使う
  • Bladeテンプレートでroute('ルート名')を使い、リンクやフォームのURLを動的に生成する
  • パラメータ付きルートはroute('ルート名', ['パラメータ名' => 値])の形で指定する
  • route関数を使うことでURLの変更に強いコードを書ける

まとめ

まとめ
まとめ

Laravelでroute関数を使う意義と理解を深める振り返り

LaravelでルートをBladeテンプレートに記述する方法を学ぶと、アプリケーション全体の設計や可読性が大きく向上します。とくに、名前付きルートを活用してroute関数でURLを生成する仕組みは、変更に強い柔軟なコードを書くうえで欠かせない考え方です。決められたURLをそのまま書き込むと、URLの構造変更があったときにテンプレートの修正が必要になりますが、名前付きルートとroute関数を組み合わせれば、ルート定義側の変更だけで安全に動作させることができます。こうした特徴は、長期的な運用やチーム開発でも非常に役立ちます。 また、パラメータ付きルートに対しても配列で値を渡すだけで動的なURLを生成できるため、ブログ記事の詳細ページ、ユーザー情報ページ、管理画面など、様々な画面遷移でこの手法が活躍します。フォームのaction属性にもroute関数を使えるので、送信先を確実にコントロールでき、POSTリクエストやCSRF対策との相性も良く、Laravel本来の設計思想に沿った自然な記述になります。 実際のBladeテンプレートでは、以下のようなクラスやタグ構成を使ってわかりやすくリンクを表示できます。


<div class="link-box">
    <a class="btn btn-primary" href="{{ route('home') }}">ホームに戻る</a>
</div>

このように、BladeテンプレートにおけるURL生成をroute関数へ統一しておけば、Laravel特有のURL管理のしやすさを最大限に活かせます。アプリケーションが大きくなるほど、個々のURLを正しく制御することは重要になり、予期しないリンク切れを防ぎ、読みやすいテンプレートを維持できます。とくに、複数の開発者が関わる場面では、ルート名だけでどの画面に遷移するのかが分かるため、設計の意図が伝わりやすく、コミュニケーションのコストも抑えられます。 Laravelのルーティングは、単にページを示すものではなく、アプリケーション全体の流れを作り出す重要な要素です。今回の学習内容を踏まえ、名前付きルートとroute関数の活用を自然な形で身につけていくことで、より創造的で安定した開発ができるようになります。細かな記述の積み重ねが結果として大きな違いを生み出すため、小さな部分も丁寧に扱うことが大切です。

先生と生徒の振り返り会話

生徒

「今日の内容で、BladeテンプレートのURL管理がとても楽になることがわかりました。特に、ルート名を覚えておけばURLを直接書かなくても済むんですね。」

先生

「そうですね。route関数を使うことでLaravelらしい書き方になりますし、後からURLが変わってもテンプレートを修正せずに済むので便利です。」

生徒

「パラメータ付きルートも配列で渡すだけなので、記事IDやユーザーIDを含むページにも応用しやすいと思いました。」

先生

「その通りです。パラメータを扱うリンクやフォームでは特に効果を発揮します。安全で見通しの良いコードを意識して書くと、Laravelの開発がもっと楽になりますよ。」

生徒

「URL管理に強いことの大切さがよく分かりました。今後のプロジェクトでも積極的にroute関数を使ってみます。」

先生

「ぜひ実践してください。Laravelを使う上で基礎になる部分なので、しっかり身につけると応用力が自然と伸びていきますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Laravelのroute関数とは何ですか?

Laravelのroute関数は、名前付きルートから正しいURLを自動で取得するための関数で、URLを直接書かずに済むため便利です。
カテゴリの一覧へ
新着記事
New1
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New2
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New3
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
New4
CodeIgniter
CodeIgniterのコントローラとは?役割と基本構造を完全解説!初心者向けガイド
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)
No.7
Java&Spring記事人気No7
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.8
Java&Spring記事人気No8
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説