Laravelのルーティングの基本構文と書き方をやさしく解説!初心者でも理解できるWebルートの仕組み
生徒
「Laravel(ララベル)で、ブラウザに表示するページの指定ってどうやるんですか?」
先生
「いい質問ですね。Laravelでは、ルーティングという仕組みを使って、URLと処理を結びつけますよ。」
生徒
「ルーティングって難しそう…。初心者でも使えるんですか?」
先生
「もちろん!とてもシンプルな構文なので、これから一緒にLaravelのルーティングの基本を学んでいきましょう。」
1. Laravelのルーティングとは?
Laravel(ララベル)のルーティング(Routing)とは、WebサイトのURL(アドレス)と、それに対応する処理(関数やページ)を結びつける仕組みのことです。簡単に言うと「この住所(URL)にお客さんが来たら、この部屋(処理)に案内してね」とLaravelにルールを教えておくイメージです。
たとえば、http://example.com/hello というURLを表示したいとき、Laravelは自動で画面を探してくれるわけではありません。あらかじめ「/hello にアクセスされたら、この処理を動かしてね」というルート(道順)を用意しておく必要があります。この「どのURLでどの処理を動かすか」という対応表がルート(Route)です。
ブラウザからURLにアクセスがあると、Laravelはまずルートの一覧を見て、「このURLに合うルールはどれかな?」と探します。一致するルートが見つかれば、そのルートに書かれている処理を実行し、その結果(HTMLや文字列など)をブラウザに返します。逆に、ルートが用意されていないURLにアクセスすると、「ページが見つかりません(404)」というエラー画面になってしまいます。
Laravelでは、このルートの設定をroutes/web.php というファイルにまとめて書いていきます。web.php は「WebブラウザからアクセスされるURLのルール帳」のようなもので、「トップページ用のルート」「お問い合わせページ用のルート」といった形で、1本ずつURLと処理の組み合わせを登録していきます。
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return 'トップページです';
});
このサンプルは、「/(サイトの一番最初のURL)」にアクセスされたら、「トップページです」という内容を表示してね、とLaravelに教えている例です。ここではルーティングの雰囲気だけをつかんでおきましょう。実際の書き方やほかのパターンは、次の章で少しずつ確認していきます。
2. Laravelルーティングの基本構文
Laravelでルート(URLと処理のセット)を書くときの、いちばん基本の形は次のようになります。ここさえ押さえておけば、シンプルなWebページ表示はひと通り作れるようになります。
use Illuminate\Support\Facades\Route;
Route::get('/hello', function () {
return 'こんにちは、Laravel!';
});
このコードは「/hello というURLにアクセスされたとき、『こんにちは、Laravel!』という文字を画面に返す」という意味です。とても短いコードですが、この1行の中にルーティングの基本構文がぎゅっと詰まっています。
ポイントは3つあります。まず、use Illuminate\Support\Facades\Route; で、ルートを定義するための Route クラスを読み込んでいます。次に、Route::get() が「GETという方法でアクセスされたURLに対するルートを登録するよ」という合図になっています。最後に、丸かっこの中の1つ目の引数 '/hello' がURLのパス、2つ目の引数 の function () { ... } の中に、実際に行いたい処理を書きます。
イメージとしては、「/hello という道(URL)に来たら、この関数の中身を実行して、その結果をブラウザに返してね」とLaravelに教えている状態です。処理の中身は、文字列だけでなく、HTMLを返したり、後で学ぶビュー(テンプレート)を表示したりすることもできます。
Route::get('/goodbye', function () {
return 'さようなら、Laravel!';
});
たとえば、このようにもう1つルートを追加すると、/hello にアクセスしたときは「こんにちは、Laravel!」、/goodbye にアクセスしたときは「さようなら、Laravel!」と、それぞれ別のメッセージを表示できます。このように、Route::get('URL', 処理); という基本構文を覚えておけば、あとはURL部分と中の処理を書き換えるだけで、いろいろなページを増やしていけます。
ルートの基本構文は、すべて routes/web.php に書いていきます。「どのURLに来たら、どの処理を動かすか」を1行ずつ登録していくイメージで、まずはこの形に慣れるところから始めてみましょう。次の章では、この基本構文の中で使っている get などの書き方を、もう少し掘り下げて見ていきます。
3. HTTPメソッドってなに?
Route::get() の「get」は、Webブラウザがサーバーに対して「このページを見せてください」とお願いするときに使うHTTPメソッドの一つです。Webアプリは、この「どんな目的でアクセスされたか」を判断するために、GET や POST などのメソッドを使い分けています。
たとえるなら、GET は「見るだけの用事」、POST は「何かを届けたいときの用事」というイメージです。同じURLでも、どのメソッドでアクセスされたかによって動かす処理を変えられるため、フォーム送信やデータ更新など、用途に応じて書き分けることができます。
Route::get('/sample', function () {
return 'GETでアクセスされました';
});
Route::post('/sample', function () {
return 'POSTでアクセスされました';
});
このサンプルでは、同じ /sample というURLでも、GETアクセスなら「GETでアクセスされました」、POSTアクセスなら「POSTでアクセスされました」と表示内容が変わります。フォームを送信したり、ページを閲覧したりといった動きの違いを、LaravelがHTTPメソッドを通して判断しているためです。
Laravelでよく使うHTTPメソッドは次の通りです。
Route::get():ページを表示したいときに使う(閲覧用)Route::post():フォーム送信など、データをサーバーへ渡したいときに使うRoute::put()・Route::delete():データの更新や削除のときに使う(少し応用的)
まずは GET と POST の2つを理解しておけば、基本的なWebアプリの動きはつかめます。HTTPメソッドはルーティングの大切な基礎なので、ここでしっかりイメージをつかんでおくと後の学習がぐっと楽になります。
4. ブラウザで表示するHTMLを返す
さきほどの例では「文字列」を表示しましたが、HTMLを表示させたい場合は、次のようにします。
Route::get('/html', function () {
return '<h1>Laravelへようこそ</h1>';
});
このルートにアクセスすると、「Laravelへようこそ」という大きな見出しが表示されます。もちろん、本格的にはテンプレート(ビュー)を使いますが、ここではシンプルな例でHTMLの出力方法を確認しておきましょう。
5. URLに変数を含めるパターン
Laravelのルートでは、URLに変数(パラメータ)を含めることもできます。たとえば、次のようなURLで名前を指定したい場合:
http://example.com/hello/たろう
このようにルートを定義します。
Route::get('/hello/{name}', function ($name) {
return 'こんにちは、' . $name . 'さん!';
});
{name}という部分が、URLから渡される名前になります。
http://example.com/hello/たろう にアクセス
↓
「こんにちは、たろうさん!」と表示される
6. ルートを複数設定する
もちろん、複数のページを用意したい場合は、web.phpにどんどんルートを追加できます。
Route::get('/', function () {
return 'トップページです';
});
Route::get('/about', function () {
return 'このサイトについて';
});
Route::get('/contact', function () {
return 'お問い合わせはこちら';
});
それぞれのURLにアクセスすれば、それぞれ異なるページ内容が表示されます。
7. ルート定義の注意点
Laravelのルーティングを書くときは、以下の点に注意しましょう:
- ルートは
routes/web.phpに書く - 同じURLに複数のルートを定義しない(上書きされる)
- URLのパターン(スラッシュ/)に注意
また、URLに使われる日本語などは、ブラウザによってエンコードされるため、なるべく英数字の使用をおすすめします。
まとめ
Laravelルーティングの仕組みを理解して次のステップへ進もう
ここまでLaravelのルーティングの基本構文をひとつずつ確かめながら見てきましたが、全体を通して感じられるのは、Laravelのルート定義がとても柔軟でありながら読みやすく、初心者でも自然に扱える構造になっているという点です。Webアプリケーションでは、どのページにアクセスしたらどんな処理が実行されるのかという道筋がとても重要であり、その入口となるルート設定が明確に整理されているほど、アプリケーション全体の形が整い、管理しやすい状態を保つことができます。
とくに、Route::get() や Route::post() のようなHTTPメソッドに合わせた定義方法は、処理の意図が直感的に伝わるため、コードを読む人にとっても理解しやすく、保守のしやすさにつながります。また、URLに変数を含めるパラメータルートは、動的にページ内容が変わる場面で欠かせない仕組みであり、ユーザー情報や記事データなどを扱うアプリケーションでは日常的に利用される重要な書き方となります。
今回学んだ要点を整理すると、Laravelのルーティングは次のような特徴に支えられています。
- URLと処理を対応させることでアプリ全体の流れを作れる
- HTTPメソッドごとに役割が異なるため、適切なメソッド選択が重要
- HTMLだけでなく、テンプレートや文字列なども返せる柔軟性がある
- パラメータを使えば動的なページも簡単に作れる
- 複数ルートを並べるとページ構造を直感的に整理できる
routes/web.phpという一つの場所にまとまっているため、ルートの管理が容易で、変更も簡単です。
また、実際にルーティングを記述するときに気を付けたいポイントとして「同じURLを重複させない」という点が挙げられます。Laravelは上書きされたルートを優先してしまうため、意図しない動作が起こる原因になります。細かい記述ではありますが、こうしたミスを防ぐ視点も身につけておくと、次のステップであるコントローラの学習やビューとの連携がさらにスムーズになります。
文章だけではイメージしにくい部分もあるため、ここで今回のポイントを踏まえたサンプルのルート構成をもう一度確認してみましょう。
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return '<h1 class="fw-bold">トップページへようこそ</h1>';
});
Route::get('/hello/{name}', function ($name) {
return '<p class="text-primary">こんにちは、' . $name . 'さん!</p>';
});
Route::post('/send', function () {
return 'データを受け取りました';
});
このような形でルートを積み重ねていくと、Laravelアプリの構成が鮮明に見えてきます。とくに、動的なURLを扱う部分やHTTPメソッドの選択は、実際のアプリ制作でも頻繁に登場する重要スキルとなりますので、今回の内容を繰り返し試しながら自然に身につけていくのが良いでしょう。 さらに、ルーティングを正しく理解すると、その先にあるコントローラ・ビュー・ミドルウェアといったLaravelの各機能のつながりが把握しやすくなり、全体像を見通した開発ができるようになります。基礎を固めることが大きな力につながるため、一つひとつ丁寧に学ぶ姿勢がとても大切です。
生徒
「Laravelのルートって最初はむずかしそうと思っていましたが、URLと処理を結びつけるだけと分かってから一気に理解が進みました。」
先生
「その感覚はとても大事ですよ。ルーティングはアプリ全体の入口を作る役割なので、仕組みをつかむと開発がぐっと楽になります。」
生徒
「パラメータを使ったときに、名前がそのまま変数として受け取れるのも便利だと思いました。実際のアプリでよく使いそうです。」
先生
「その通り。動的なページを作る場面では必須の考え方ですね。ルーティングが理解できれば、次はコントローラを学ぶとさらに深く理解できますよ。」
生徒
「なるほど。今回のルート設定をしっかり練習して、もっとLaravelを使いこなせるようになりたいです!」
先生
「良い意気込みですね。ひとつずつ積み重ねていけば自然と力がついていきますよ。」