カテゴリ: Laravel 更新日: 2026/01/08

Laravelで名前付きルートを設定する方法!初心者でもわかるroute()関数の使い方

Laravelで名前付きルートを設定する方法(route()関数の使い方)
Laravelで名前付きルートを設定する方法(route()関数の使い方)

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

生徒

「Laravelのルートに名前を付けることができるって聞いたんですが、本当ですか?」

先生

「はい、本当です。Laravelではルートに“名前”を付けておくことで、URLを直接書かずに簡単に呼び出せるようになります。」

生徒

「それってどうやって設定するんですか?route関数とか使うって聞いたことがありますが…」

先生

「では今回は、名前付きルートの作り方とroute()関数の使い方を一緒に見ていきましょう!」

1. 名前付きルートとは?

1. 名前付きルートとは?
1. 名前付きルートとは?

名前付きルートとは、Laravelで URL に「わかりやすい名前」を付けて管理するための仕組みです。URLそのものを書かずに処理を呼び出せるため、アプリが大きくなるほど役立つ便利な機能です。

たとえば、ページのURLを後から変更したとしても、名前付きルートを使っていれば、コード側をいちいち探して書き換える必要がありません。リンク作成やリダイレクトもすべて「ルート名」だけで呼び出せるので、初心者でも安全にルーティングを扱えます。

初心者向け:名前付きルートのイメージをつかむミニ例

URLにあだ名を付けて呼び出すようなイメージです。あだ名が変わらなければ、URLが変わっても問題ありません。


// URLに「contact」という名前を付けるイメージ
Route::get('/contact', function () {
    return 'お問い合わせページ';
})->name('contact');

// あだ名(ルート名)でURLを取得
$url = route('contact');

echo $url; // "/contact" が表示される

このように、ルート名を使うことでコードの見通しが良くなり、間違いも少なくなります。Laravel初心者が最初に覚えると大きなメリットを感じられる機能です。

2. 名前付きルートの書き方

2. 名前付きルートの書き方
2. 名前付きルートの書き方

名前付きルートを設定する基本の書き方は、とてもシンプルです。通常のルート定義の最後にname()メソッドを「チェーン」して呼び出すだけで、そのルートにわかりやすい名前を付けることができます。

まずは一番シンプルな例から見てみましょう。お問い合わせページにアクセスするためのURLに、contactという名前を付けています。


use Illuminate\Support\Facades\Route;

Route::get('/contact', function () {
    return 'お問い合わせページ';
})->name('contact');

このコードでは、/contactというURLのルートに対して、contactという「ルート名(あだ名のようなもの)」を設定しています。今後、コードの中からこのページを呼び出したいときは、長いURL文字列ではなく、このcontactという名前を使ってアクセスできるようになります。

ポイント:名前は「後ろに付ける」「わかりやすく付ける」

名前付きルートは、次の2つを意識しておくと覚えやすくなります。

  • ルート定義のいちばん最後に ->name('◯◯') を付ける
  • 「何のページか」が分かる名前にする(例:contactabout など)

たとえば、今後「ユーザー詳細ページ」などを増やしていく場合も、user.show のように意味のある名前を付けておくと、Laravelアプリ全体のルーティングが整理されて見やすくなります。


Route::get('/about', function () {
    return 'このサイトについて';
})->name('about');

このように、名前付きルートは「URLにわかりやすいラベルを貼る」イメージで使うと理解しやすく、後からroute()関数で呼び出すときにも迷いにくくなります。

3. route()関数で名前付きルートを使う方法

3. route()関数で名前付きルートを使う方法
3. route()関数で名前付きルートを使う方法

名前付きルートを用意したら、次は実際にそのルートを「呼び出す」側の書き方です。Laravelでは、route()関数を使うことで、ルート名からURL文字列を簡単に取り出すことができます。URLをベタ書きせずに済むので、複数ページから同じリンクを使うような場面で特に力を発揮します。

まずは、先ほど設定したcontactという名前付きルートを、PHPコードの中から呼び出してみましょう。


$url = route('contact');

echo $url; // "/contact" のようなURL文字列が表示される

このように、route('contact')と書くだけで、/contactという実際のURLが変数$urlに代入されます。もし将来URLを/contact-usのように変更したとしても、ルート定義側を書き換えるだけで、route('contact')を使っているコードはそのまま動き続けます。

初心者向けミニサンプル:別のルートからURLを取得してみる

次のように、別のルートの中でroute()関数を使い、名前付きルートのURLをメッセージとして返すこともできます。


use Illuminate\Support\Facades\Route;

Route::get('/contact', function () {
    return 'お問い合わせページ';
})->name('contact');

Route::get('/show-contact-url', function () {
    $url = route('contact');
    return 'お問い合わせページのURLは「' . $url . '」です。';
});

/show-contact-urlにアクセスすると、route()関数から取得したURLが文章として表示されます。「ルート名からURLを取り出す」という流れを一度体験しておくと、後からリンク作成やリダイレクト処理を書くときにもイメージしやすくなります。テンプレート(Blade)での実際のリンクの書き方は、次の章で紹介していきます。

4. Bladeテンプレートでの使い方

4. Bladeテンプレートでの使い方
4. Bladeテンプレートでの使い方

LaravelのテンプレートエンジンであるBlade(ブレード)では、コントローラーで取得したデータを使ってHTMLを作成します。その中で、リンク先のURLを毎回文字列で書くと間違えやすいため、BladeでもPHPコードと同じようにroute()関数を使って「名前付きルート」を呼び出します。

もっとも基本的な書き方は次の通りで、名前付きルートcontactにリンクするHTMLタグを簡単に作れます。


<a href="{{ route('contact') }}">お問い合わせはこちら</a>

{{ route('contact') }}の部分で、PHPのroute('contact')と同じようにURL文字列が生成され、その結果がhref属性に自動で埋め込まれます。Bladeでは{{ }}で囲んだ部分が「画面に表示される値」と覚えておくとイメージしやすいです。

ボタン風リンクなど、いろいろな場面で使える

同じroute()でも、クラスを付ければボタン風のリンクにすることもできます。HTML側はいつも同じ書き方で、リンク先だけを名前付きルートで管理できます。


<a href="{{ route('contact') }}" class="btn btn-primary">
    お問い合わせページへ進む
</a>

このように、Bladeテンプレートの中でroute()を使っておくと、「URLが変わってもテンプレートを大量に修正しなくていい」というメリットがあります。リンク先を増やしたいときも、ルート名さえ覚えておけば、どのテンプレートからでも同じ書き方で安全にアクセスできるようになります。

5. 名前付きルートにパラメータを渡す方法

5. 名前付きルートにパラメータを渡す方法
5. 名前付きルートにパラメータを渡す方法

名前付きルートは、単に固定のページだけでなく、ユーザーID記事IDのような「毎回変わる値」を含むURLにも使えます。Laravelでは、このような可変部分を「パラメータ」と呼び、ルート側で受け取って画面表示や処理に利用します。

まずは、ID付きのユーザー詳細ページを想像してみましょう。/user/1/user/5 のように、アクセスするたびに数字が変わるURLを、次のように定義します。


use Illuminate\Support\Facades\Route;

Route::get('/user/{id}', function ($id) {
    return 'ユーザーID: ' . $id;
})->name('user.show');

/user/{id}{id} 部分が「パラメータの受け皿」です。実際にアクセスするときは /user/1/user/10 のように数字が入り、その値が関数の $id に渡されます。このルートには user.show という名前を付けているので、route() 関数からも簡単にURLを生成できます。


$url = route('user.show', ['id' => 5]);

echo $url; // "/user/5" というURL文字列が表示される

ここで大事なのは、配列のキー名 'id' がルート定義の {id} と一致していることです。この名前がズレていると、正しくURLが生成されません。配列の「左側はルートの {id} に対応する名前、右側は実際に埋め込みたい値」と覚えておくと迷いにくくなります。

BladeテンプレートでID付きリンクを作るミニサンプル

画面から特定ユーザーの詳細ページに飛ばしたい場合も、同じようにパラメータを渡せます。次の例では、ユーザーID 5 の詳細ページに飛ぶリンクを作っています。


<a href="{{ route('user.show', ['id' => 5]) }}">
    ユーザーID 5 のページへ
</a>

このように、名前付きルートとパラメータを組み合わせることで、「どのユーザーか」「どの記事か」といった情報をURLにのせつつ、コード側は常にroute('user.show', [...])という分かりやすい書き方で統一できます。Laravelのルーティングを使いこなすうえで、ぜひ早い段階で慣れておきたいポイントです。

6. 名前付きルートの利点

6. 名前付きルートの利点
6. 名前付きルートの利点
  • ルートのURLを直接書かずに済むので管理が楽
  • リンクやリダイレクト処理が簡単になる
  • URLが変わってもルート名はそのままでOK
  • コードの可読性(読みやすさ)が上がる

名前付きルートとroute()関数を使いこなせるようになると、Laravelでのルーティングがとても効率的になります。Laravelアプリの開発では欠かせない大事なテクニックです。

まとめ

まとめ
まとめ

この記事では、Laravelで名前付きルートを設定する方法や、便利なroute関数の活用法について丁寧に振り返ってきました。あらためて整理すると、名前付きルートはLaravelのルーティング機能の中でも特に実務で役立つ仕組みであり、初心者でも使いやすい非常に強力なポイントです。名前を付けておくことで、複雑なURLや変更される可能性のあるパスに直接依存せず、アプリケーション全体の保守性を高めることができます。とくに大規模なLaravelアプリケーションでは、ルートの整理やリダイレクト、Bladeテンプレートのリンク生成において、名前付きルートが重要な役割を果たします。さらに、パラメータ付きルートにも柔軟に対応できるため、ユーザー情報や記事IDなどを動的に渡す際にも非常に便利です。 また、route関数を活用することで、URLの生成を自動化し、記述の煩雑さを解消しつつ、Laravel全体のコードの一貫性も保つことができます。Bladeテンプレートでのリンク生成や、コントローラ・ミドルウェアなどからのルーティング処理にも活用できるため、Laravelの開発では欠かせない技術だといえるでしょう。とくにLaravelを学び始めたばかりの人にとっては、まずこの名前付きルートとroute関数の使い方を習得することで、ルーティング周りの理解が一気に深まり、ビューやコントローラのコード整理がよりスムーズに行えるようになります。 下記のようなシンプルなサンプルコードでも、名前付きルートの利点や使い方がよく理解できます。

サンプルプログラム


// 名前付きルートの定義
Route::get('/dashboard', function () {
    return 'ダッシュボードへようこそ';
})->name('dashboard');

// route関数でURL生成
$url = route('dashboard');

// Bladeテンプレートの例
// <a href="{{ route('dashboard') }}">ダッシュボード</a>

このように、名前付きルートはLaravelで効率的に画面遷移やURL管理を行うための中心的な存在です。URL変更にも強く、開発チーム全体で管理がしやすく、アプリケーションの拡張にも柔軟に適応できます。ルーティングは初心者にとって最初の壁になりがちな部分ですが、名前付きルートをしっかり理解して使えるようになれば、Laravel学習の大きな前進につながります。

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

生徒

「名前付きルートって、思ったより便利なんですね。URLが変わってもコードを直さなくていいのは助かります!」

先生

「その通りです。route関数を使うことで、Laravelが自動でURLを生成してくれるので、誤字やパス変更の心配がなくなりますよ。」

生徒

「パラメータを渡す方法も理解できました!例えばユーザーIDを渡してページに飛ぶときも簡単ですね。」

先生

「ええ、実務では動的なページが多いので、パラメータ付きルートは必須になります。Laravelのルーティングは柔軟なので、慣れてくるとさらに活用の幅が広がりますよ。」

生徒

「今日学んだ内容で、Laravelのルーティングが少し怖くなくなりました!もっと自分でも試してみます!」

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

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

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

Laravelで名前付きルートとは何ですか?初心者向けにわかりやすく教えてください

Laravelの名前付きルートとは、ルーティングに名前を付けることで、URLを直接記述せずに呼び出せる便利な仕組みです。ルート名を使うことで、URL変更時も修正箇所が減り、コードの保守が簡単になります。
関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
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でログを出力する方法(Monolog・storage/logs)
No.7
Java&Spring記事人気No7
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)
No.8
Java&Spring記事人気No8
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド