はじめに
この記事はルーティングについての備忘録になります
誤りや加筆が必要な場合は随時更新します
コントローラーへのルーティングについて
作成したコントローラーにルートを設定します。indexメソッドを実行したい場合は以下のようにルーティングを追加します。
use App\Http\Controllers\UserController;
Route::get('/users', [UserController::class, 'index']);
ルーティングファイルについて
Laravelのルーティングはroutes/web.php
または routes/api.php
で定義します。
use Illuminate\Support\Facades\Route;
Route::get('/welcome', function () {
return 'Welcome to Laravel!';
});
このルートは、/welcomeにGETリクエストを送ると、「Welcome to Laravel!」というメッセージを表示します
apiのルーティングについて
apiへのルーティングはapi.php
に記述されておりましたが、Laravel11ではapi.phpが削除されているため、APIへのルーティングもweb.php
に書くことができます
しかし、構造の明確化
やURLにapi/
を含みたい場合などは、以下のコマンドでapi.phpを追加することができます
php artisan install:api
ルートパラメータについて
ルートパラメータを使うことで動的な値をURLに含めることができます
Route::get('/user/{id}', function ($id) {
return "User ID: " . $id;
});
名前付きルートについて
名前付きルートを使うと、特定のルートに名前を付け、その名前でアクセスすることができます
Route::get('/about', function () {
return 'About Us';
})->name('about');
// 名前付きルートを使ってリンクを生成する
// <a href="{{ route('about') }}">About Us</a>
グループルーティング
複数のルートに共通の設定を適用するために、グループルーティングを使います
Route::prefix('admin')->group(function () {
Route::get('/dashboard', function () {
return 'Admin Dashboard';
});
Route::get('/settings', function () {
return 'Admin Settings';
});
});
この設定では、/admin/dashboardや/admin/settingsのように、すべてのルートがadminプレフィックスを持ちます
ミドルウェアの使用
特定のルートに対して、リクエスト処理の前後に何らかの処理を行いたい場合に、ミドルウェアを使用します
Route::middleware(['auth'])->group(function () {
Route::get('/profile', function () {
return 'User Profile';
});
});
ここでは、authというミドルウェアが適用され、認証されたユーザーのみが/profileへアクセスできるようになります
認証されていないユーザーはauthによって設定されたルートにリダイレクトされます