Laravel入門(後編)

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サーバー」すべてに対応可能なフレームワークです。

採用情報 長谷川 横バージョン
SHARE
PHP Code Snippets Powered By : XYZScripts.com