公式Laravelドキュメントの「リクエストのバリデーション」ページについて説明します。
Laravelには、HTTPリクエスト中のデータを検証するための強力かつ簡単な方法が組み込まれています。基本的に、バリデーションはコントローラの「validate」メソッドを使用して行います。このメソッドは、フォームリクエストのデータがサーバに送信される前に適用されます。
基本的な使用法:
$validatedData = $request->validate([
'title' => 'required|max:255',
'body' => 'required',
]);
上記のコードでは、titleフィールドが必須であり、最大255文字であること、bodyフィールドが必須であることが検証されます。
カスタムエラーメッセージ:
$messages = [
'required' => ':attribute フィールドは必須です。',
'max' => ':attribute は:max文字以内でなければなりません。',
];
$validatedData = $request->validate([
'title' => 'required|max:255',
'body' => 'required',
], $messages);
独自のエラーメッセージを指定することが可能です。
FormRequest クラス:
検証ロジックをコントローラーから分離するために、FormRequest クラスを使用することもできます。
php artisan make:request StoreBlogPost
これにより新しいリクエストクラスが生成され、ここにバリデーションロジックを記述します。
public function rules()
{
return [
'title' => 'required|max:255',
'body' => 'required',
];
}
コントローラーでは、生成したリクエストクラスを利用できます。
public function store(StoreBlogPost $request)
{
// リクエストは自動的にバリデートされます
$validated = $request->validated();
// ...
}
これらの機能を使用することで、リクエストのバリデーションを簡単かつ効果的に行うことができます。