こんにちは、PHP開発者の皆さん!この連載の第2回では、Laravel 10のルーティングとコントローラの作成方法について詳しく解説します。Webアプリケーションの基本となるルーティングとコントローラを理解することで、データの受け渡しや処理を効率的に行えるようになります。それでは、始めましょう!
1. ルーティングの基本
Laravelのルーティングは、受信するHTTPリクエストに応じて適切なコントローラやアクションを呼び出すための仕組みです。ルートは、routes/web.php
または routes/api.php
ファイルに定義します。
ルートの定義
まずは、簡単なルートを定義してみましょう。routes/web.php
を開き、以下のコードを追加します。
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return view('welcome');
});
PHPこのルートは、HTTP GETリクエストを受け取ると、resources/views/welcome.blade.php
ビューを返します。
パラメータ付きルート
次に、URLパラメータを受け取るルートを定義してみます。
Route::get('/user/{id}', function ($id) {
return 'User ' . $id;
});
PHPこのルートは、/user/{id}
の形式でアクセスされたときに、URLパラメータとして渡されたid
を受け取り、その値を返します。
名前付きルート
名前付きルートを定義することで、ルートのURLを変更してもリンクを簡単に更新できます。
Route::get('/profile', function () {
// ...
})->name('profile');
PHP名前付きルートは、route
ヘルパー関数を使って生成できます。
$url = route('profile');
PHP2. コントローラの作成
コントローラは、ルートがリクエストを受け取った際に実行するアクションを含むクラスです。Laravelでは、artisan
コマンドを使用して簡単にコントローラを作成できます。
コントローラの生成
まずは、基本的なコントローラを生成してみましょう。ターミナルで以下のコマンドを実行します。
./vendor/bin/sail artisan make:controller UserController
Bashこのコマンドにより、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
を開き、以下のコードを追加します。
use App\Http\Controllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show']);
PHPこれで、/user/{id}
へのリクエストが UserController
の show
メソッドに渡されます。
3. RESTfulリソースコントローラ
Laravelでは、RESTfulなコントローラを簡単に作成できます。これにより、リソースに対する標準的なCRUD操作を自動的にルーティングできます。
リソースコントローラの生成
リソースコントローラを生成するには、以下のコマンドを実行します。
./vendor/bin/sail artisan make:controller PostController --resource
Bashこれにより、app/Http/Controllers/PostController.php
ファイルが生成され、基本的なCRUDメソッドが自動的に含まれます。
リソースルートの設定
次に、リソースルートを設定します。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
でミドルウェアをルートに適用する方法を見てみましょう。
Route::get('/profile', function () {
// ...
})->middleware('auth');
PHPこれにより、auth
ミドルウェアが適用され、ユーザーが認証されていない場合はリクエストが拒否されます。
5. まとめ
この記事では、Laravel 10のルーティングとコントローラの作成方法について解説しました。ルーティングとコントローラを理解することで、効率的なWebアプリケーション開発が可能になります。次回は、モデルとデータベースの操作について学びます。それでは、次の記事でお会いしましょう!
次の記事:第3回 モデルとデータベースの操作
コメント