第2回 基礎編: ルーティングとコントローラの作成

Laravel WebAPI開発

こんにちは、PHP開発者の皆さん!この連載の第2回では、Laravel 10のルーティングとコントローラの作成方法について詳しく解説します。Webアプリケーションの基本となるルーティングとコントローラを理解することで、データの受け渡しや処理を効率的に行えるようになります。それでは、始めましょう!

1. ルーティングの基本

Laravelのルーティングは、受信するHTTPリクエストに応じて適切なコントローラやアクションを呼び出すための仕組みです。ルートは、routes/web.php または routes/api.php ファイルに定義します。

ルートの定義

まずは、簡単なルートを定義してみましょう。routes/web.php を開き、以下のコードを追加します。

routes/web.php
use Illuminate\Support\Facades\Route;

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

このルートは、HTTP GETリクエストを受け取ると、resources/views/welcome.blade.php ビューを返します。

パラメータ付きルート

次に、URLパラメータを受け取るルートを定義してみます。

routes/web.php
Route::get('/user/{id}', function ($id) {
    return 'User ' . $id;
});
PHP

このルートは、/user/{id} の形式でアクセスされたときに、URLパラメータとして渡されたidを受け取り、その値を返します。

名前付きルート

名前付きルートを定義することで、ルートのURLを変更してもリンクを簡単に更新できます。

routes/web.php
Route::get('/profile', function () {
    // ...
})->name('profile');
PHP

名前付きルートは、route ヘルパー関数を使って生成できます。

$url = route('profile');
PHP

2. コントローラの作成

コントローラは、ルートがリクエストを受け取った際に実行するアクションを含むクラスです。Laravelでは、artisanコマンドを使用して簡単にコントローラを作成できます。

コントローラの生成

まずは、基本的なコントローラを生成してみましょう。ターミナルで以下のコマンドを実行します。

./vendor/bin/sail artisan make:controller UserController
Bash

このコマンドにより、app/Http/Controllers/UserController.php ファイルが生成されます。

コントローラの内容

生成されたコントローラにメソッドを追加してみましょう。

app/Http/Controllers/UserController.php
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    public function show($id)
    {
        return 'User ' . $id;
    }
}
PHP

このメソッドは、ユーザーIDを受け取り、そのIDを返します。

コントローラのルート設定

次に、このコントローラをルートに設定します。routes/web.php を開き、以下のコードを追加します。

routes/web.php
use App\Http\Controllers\UserController;

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

これで、/user/{id} へのリクエストが UserControllershow メソッドに渡されます。

3. RESTfulリソースコントローラ

Laravelでは、RESTfulなコントローラを簡単に作成できます。これにより、リソースに対する標準的なCRUD操作を自動的にルーティングできます。

リソースコントローラの生成

リソースコントローラを生成するには、以下のコマンドを実行します。

./vendor/bin/sail artisan make:controller PostController --resource
Bash

これにより、app/Http/Controllers/PostController.php ファイルが生成され、基本的なCRUDメソッドが自動的に含まれます。

リソースルートの設定

次に、リソースルートを設定します。routes/web.php を開き、以下のコードを追加します。

routes/web.php
use App\Http\Controllers\PostController;

Route::resource('posts', PostController::class);
PHP

これにより、以下のような標準的なCRUD操作のルートが自動的に生成されます。

  • GET /posts
  • GET /posts/create
  • POST /posts
  • GET /posts/{post}
  • GET /posts/{post}/edit
  • PUT/PATCH /posts/{post}
  • DELETE /posts/{post}

4. ミドルウェアの利用

ミドルウェアは、HTTPリクエストを処理する前に実行されるフィルタです。認証やログ記録などに使用されます。

ミドルウェアの設定

routes/web.php でミドルウェアをルートに適用する方法を見てみましょう。

routes/web.php
Route::get('/profile', function () {
    // ...
})->middleware('auth');
PHP

これにより、auth ミドルウェアが適用され、ユーザーが認証されていない場合はリクエストが拒否されます。

5. まとめ

この記事では、Laravel 10のルーティングとコントローラの作成方法について解説しました。ルーティングとコントローラを理解することで、効率的なWebアプリケーション開発が可能になります。次回は、モデルとデータベースの操作について学びます。それでは、次の記事でお会いしましょう!

次の記事:第3回 モデルとデータベースの操作

コメント

タイトルとURLをコピーしました