0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

Laravelのルーティングを基本と応用に分けて解説してみた

Last updated at Posted at 2024-06-23

はじめに

こんにちは、Webエンジニアの岩田史門(@SI_Monxy)です!
今回はLaravelのルーティングについて記事を書いてみました!
改善点や修正点があれば、コメントにて優しくご指導いただけると嬉しいです!!

概要

Laravelは、非常に強力で柔軟なルーティングシステムを提供しています。ここでは、Laravelのルーティングについて基本から応用までをサンプルコードと共に解説します。

基本編

ルートの定義

Laravelでは、ルートは routes/web.php ファイルに定義します。以下は基本的なルートの定義方法です。

Route::get('/', function () {
    return view('welcome');
});

この例では、/ にアクセスすると welcome ビューが表示されます。

HTTPメソッドとルーティング

Laravelは、GET、POST、PUT、DELETEなどのHTTPメソッドに対するルートを定義することができます。

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

Route::post('/submit', function () {
    return 'Form submitted';
});

ルートパラメータ

ルートパラメータを使用すると、URLの一部を変数として取得できます。

Route::get('/user/{id}', function ($id) {
    return 'User ID: ' . $id;
});

オプションパラメータ

ルートパラメータをオプションにすることもできます。

Route::get('/user/{name?}', function ($name = 'Guest') {
    return 'User Name: ' . $name;
});

応用編

ルートグループ

共通のミドルウェアや名前空間を持つルートをグループ化できます。

Route::prefix('admin')->group(function () {
    Route::get('/dashboard', function () {
        return 'Admin Dashboard';
    });

    Route::get('/users', function () {
        return 'Admin Users';
    });
});

名前付きルート

名前付きルートは、ルートに名前を付けて、URL生成やリダイレクトで使用できます。

Route::get('/profile', function () {
    return 'User Profile';
})->name('profile');

// 使用例
$url = route('profile');
return redirect()->route('profile');

ルートモデルバインディング

Laravelのルートモデルバインディングを使うと、モデルを自動的にルートに注入することができます。

// モデルバインディングなし
Route::get('/user/{id}', function ($id) {
    $user = App\Models\User::findOrFail($id);
    return $user;
});

// モデルバインディングあり
Route::get('/user/{user}', function (App\Models\User $user) {
    return $user;
});

ミドルウェア

ミドルウェアを使って、ルートに特定の条件を追加することができます。例えば、認証が必要なルートを定義する場合です。

Route::get('/dashboard', function () {
    return 'Dashboard';
})->middleware('auth');

サブドメインルーティング

Laravelでは、サブドメインに対するルートも簡単に定義できます。

Route::domain('{account}.example.com')->group(function () {
    Route::get('user/{id}', function ($account, $id) {
        return 'Account: ' . $account . ' - User ID: ' . $id;
    });
});

まとめ

Laravelのルーティングシステムは非常に強力で、シンプルなものから高度なものまで様々なルート定義をサポートしています。基本を押さえた上で、応用的な機能を使いこなして、より複雑なアプリケーションを構築していきましょう。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?