Laravelの魅力は、単に美しいコードだけではなく、実用的で柔軟な機能が揃っている点にあります。
フォームバリデーション、ミドルウェア、セッション、APIといった、実務で欠かせない機能もLaravelではシンプルに実装可能です。
本記事では、Laravel入門(前編)で学んだ基礎に続き、実践的な機能を習得する後編をお届けします。

目次
フォームバリデーション
Laravelでは、リクエストの検証(バリデーション)を非常に簡潔に記述できます。
コントローラー内のバリデーション例
use Illuminate\Http\Request;
public function store(Request $request) {
$validated = $request->validate([ 'title' => 'required|max:255', ]);
Task::create($validated);
return redirect()->route('tasks.index');
}
バリデーションエラーがある場合、自動的に前のページにリダイレクトされ、エラー内容がセッションに保存されます。
Blade側でエラー表示
@if ($errors->any()) <ul style="color: red;">
@foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul>
@endif
ミドルウェアの活用
ミドルウェアは、リクエストとレスポンスの間で共通処理を差し込む仕組みです。
利用例:認証が必要なページを保護
// app/Http/Controllers/DashboardController.php
public function __construct() {
$this->middleware('auth');
}
ルートに直接適用
Route::get('/dashboard', [DashboardController::class, 'index']) ->middleware('auth');
カスタムミドルウェアの作成
php artisan make:middleware CheckAdmin
// app/Http/Middleware/CheckAdmin.php
public function handle($request, Closure $next) {
if (!auth()->user()->is_admin) {
abort(403, '管理者専用です。');
}
return $next($request);
}
セッション管理とFlashメッセージ
セッションは、ユーザーごとの情報を一時的に保持する仕組みです。
Flashメッセージの設定
return redirect()->route('tasks.index')->with('status', 'タスクを追加しました!');
Bladeで表示
@if (session('status')) <div class="alert">{{ session('status') }}</div> @endif
一度表示されると自動的に消える「一時的なメッセージ」を作ることができます。
API構築とJSONレスポンス
LaravelはWeb画面だけでなく、API構築にも最適です。
ルーティング:API用ファイル
// routes/api.php
use App\Http\Controllers\Api\TaskApiController;
Route::get('/tasks', [TaskApiController::class, 'index']);
コントローラー例
// app/Http/Controllers/Api/TaskApiController.php
namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller;
use App\Models\Task;
class TaskApiController extends Controller {
public function index() {
return response()->json(Task::all());
}
}
これで /api/tasks
にアクセスすると、タスクの一覧が JSON
で返されます。
レスポンス例
[ {"id":1,"title":"テスト","created_at":"...","updated_at":"..."}, ... ]
フロントエンド(React/Vue)との連携もスムーズに行える構成です。
まとめ
Laravel入門の後編では、Webアプリ開発において不可欠な以下の技術を習得しました:
- フォームバリデーション: リクエストの検証を簡潔に
- ミドルウェア: 認証やロール制御の共通処理
- セッションとFlashメッセージ: ユーザーに通知を伝える
- API開発: JSONレスポンスでSPAや外部連携対応
Laravelは「Webアプリ」「管理画面」「APIサーバー」すべてに対応可能なフレームワークです。