【Laravel】ルーティング基本まとめ!書き方からパラメータの受け渡しまで分かりやすく解説

Laravel

WordPressのWebサイト開発で「もっと高度な機能を作りたい」「フレームワークに挑戦したい」と思ったときによく使われるのが、PHPの人気フレームワークLaravelです。

Laravelを学ぶ上で、最初に理解しておくべき重要な仕組みが「ルーティング(Routing)」です。

この記事では、ルーティングの基本概念から実際の書き方まで、初心者の方にも分かりやすく解説します!

ルーティング(Routing)とは?

ルーティングとは、一言で言うと「ユーザーがアクセスしたURLに応じて、どの処理を実行するかを案内する交通整理の仕組み」です。

例えば、ユーザーがWebブラウザで次のような操作をしたとします。

このように、「URL」と「表示するページや処理」を結びつける設定を行うのがルーティングです。

Laravelでルーティングを設定するファイル

Laravelでは、ルーティングの設定ファイルが用途ごとに分かれています。

基本的には、以下のファイルを編集します。

  • routes/web.php

Webブラウザからアクセスする通常のページ(HTMLを返すページ)のルーティングは、すべてこの web.php に記述します。

基本的なルーティングの書き方

まずは最もシンプルな書き方を見てみましょう。

PHP
use Illuminate\Support\Facades\Route;

Route::get('/hello', function () {
    return 'Hello, World!';
});

コードの解説

  • Route::get(): HTTPリクエストメソッドが GET(ページ閲覧など)の時に実行します。
  • '/hello': アクセスされるURLのパスを指定します(例:
    Example Domain
    (https://example.com/hello)
    )。
  • function () { ... }: URLにアクセスがあった時に実行される処理(無名関数)を書きます。

この設定を追加すると、/hello にアクセスした際に画面に「Hello, World!」と表示されます。

良く使うHTTPリクエストメソッド

Web開発では、目的に応じてルーティングのメソッドを使い分けます。

メソッド用途
Route::get()データの取得・ページの表示
Route::post()フォームデータの送信・保存
Route::put() / Route::patch()データの更新
Route::delete()データの削除

例えば、お問い合わせフォームを表示するときは GET、フォームの送信処理を受け取るときは POST を使います。

PHP
// お問い合わせページの表示
Route::get('/contact', function () {
    return view('contact');
});

// お問い合わせフォームの送信処理
Route::post('/contact', function () {
    // 送信されたデータを保存する処理など
});

ルーティングでパラメータ(値)を受け取る

ブログの記事詳細ページなど、URLの一部(IDなど)によって表示内容を変えたい場合は必須パラメータを使います。

PHP
Route::get('/post/{id}', function ($id) {
    return '記事ID: ' . $id . ' のページです';
});
  • URLに {id} のように波括弧をつけることで、その部分を変数として受取可能です。
  • Example Domain
    (https://example.com/post/5)
    にアクセスすると、「記事ID: 5 のページです」と表示されます。

コントローラーを使ったルーティング(実践向け)

実際の開発では、web.php の中に直接処理を書くのではなく、コントローラー(Controller)と呼ばれるファイルに処理をまとめるのが一般的です。

1. ルーティングの記述 (routes/web.php)

PHP
use App\Http\Controllers\UserController;

Route::get('/user/{id}', [UserController::class, 'show']);

2. コントローラー側の記述 (app/Http/Controllers/UserController.php)

PHP
namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class UserController extends Controller
{
    public function show($id)
    {
        return view('user.profile', ['id' => $id]);
    }
}

このように「URLの受付」と「実際の処理」を分けることで、コードが整理されて保守しやすくなります。

まとめ

Laravelのルーティングの要点をまとめます。

  1. ルーティングは「URL」と「処理」を結ぶ交通整理の役割
  2. Webページのルーティングは routes/web.php に書く
  3. GET(表示)やPOST(送信)などのメソッドを使い分ける
  4. URLに {id} を使うと動的なパラメータを受け取れる
  5. 本格的な開発ではコントローラーと連携させて書く

ルーティングはLaravel開発の第一歩です。まずは小さな処理を書きながら、挙動を確認してみてください!

コメント