Laravelでの開発において、ルーティングはアプリケーションの入り口となる重要な構成要素です。この記事では、初心者にもわかりやすくLaravelのルート定義の基本から応用までを解説し、GET・POSTメソッドやリソースルートの使い分けについても紹介します。
ルーティングとは?
ルーティングとは、ユーザーからのリクエスト(URL)を受け取り、それに対応する処理(コントローラやクロージャ)を呼び出す仕組みです。Laravelでは、主に routes/web.php
ファイルにルートを定義します。
基本的なGETルートの書き方
Webアプリケーションで最もよく使われるのがGETメソッドです。主にページの表示に使われます。
Route::get('/about', function () {
return view('about');
});
この例では、/about
にアクセスすると、resources/views/about.blade.php
が表示されます。
POSTルートの使い方
POSTメソッドはフォーム送信やデータ登録などに使われます。
Route::post('/contact', function () {
// フォーム送信内容の処理
});
HTMLフォームでmethod="post"
を指定すると、このルートが呼び出されます。
ルートに名前をつける(名前付きルート)
ルートに名前をつけることで、リンク生成などで便利に活用できます。
Route::get('/home', function () {
return view('home');
})->name('home');
route('home')
とすることでURLを生成できます。
コントローラを使ったルーティング
処理が複雑になってきた場合は、クロージャではなくコントローラに処理を移します。
Route::get('/user/{id}', [UserController::class, 'show']);
このルートでは、URLの{id}
に応じてUserController
のshow
メソッドが呼び出されます。
リソースルートで効率的にルート定義
Laravelでは、CRUD操作に必要なルートを一括で定義できる「リソースルート」が用意されています。
Route::resource('posts', PostController::class);
この1行で、以下の7つのルートが自動的に生成されます。
- GET /posts
- GET /posts/create
- POST /posts
- GET /posts/{post}
- GET /posts/{post}/edit
- PUT/PATCH /posts/{post}
- DELETE /posts/{post}
効率的にCRUD処理を実装したい場合に非常に便利です。
ルートのグループ化とミドルウェア
ルートをグループ化してミドルウェアをまとめて適用することも可能です。
Route::middleware(['auth'])->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index']);
Route::get('/settings', [SettingsController::class, 'index']);
});
このように書くと、認証済みのユーザーのみがアクセスできるルートになります。
まとめ
Laravelのルーティングは柔軟かつ強力で、シンプルなサイトから大規模なWebアプリケーションまで対応できます。GETやPOSTの基本メソッドだけでなく、リソースルートやミドルウェアを活用することで、保守性の高いコードが書けるようになります。