Laravelでメールフォームのリクエストをバリデーションする方法


  1. バリデーションルールを使用する方法:

まず、ルートやコントローラーでリクエストを受け取る前に、バリデーションルールを定義する必要があります。たとえば、以下のようなルールを定義できます。

public function rules()
{
    return [
        'name' => 'required',
        'email' => 'required|email',
        'message' => 'required',
    ];
}

上記の例では、nameemailmessageのフィールドが必須であり、emailフィールドは有効なメールアドレスである必要があります。

次に、コントローラーでリクエストを受け取るメソッドを作成します。以下は例です。

public function store(Request $request)
{
    $validatedData = $request->validate([
        'name' => 'required',
        'email' => 'required|email',
        'message' => 'required',
    ]);
    // バリデーションが成功した場合の処理
}

上記の例では、validateメソッドを使用してリクエストのデータをバリデーションしています。バリデーションが成功した場合、$validatedDataにはバリデーション済みのデータが格納されます。

  1. フォームリクエストクラスを使用する方法:

別の方法として、フォームリクエストクラスを作成してバリデーションルールを定義することもできます。

まず、以下のコマンドを使用してフォームリクエストクラスを生成します。

php artisan make:request ContactFormRequest

上記の例では、ContactFormRequestという名前のフォームリクエストクラスが生成されます。

次に、生成されたフォームリクエストクラス内でバリデーションルールを定義します。以下は例です。

public function rules()
{
    return [
        'name' => 'required',
        'email' => 'required|email',
        'message' => 'required',
    ];
}

最後に、コントローラーでフォームリクエストクラスを使用してバリデーションを行います。以下は例です。

public function store(ContactFormRequest $request)
{
    // バリデーションが成功した場合の処理
}

上記の例では、ContactFormRequestを型指定して引数として受け取ることで、バリデーションが自動的に行われます。

これらの方法を使用することで、Laravelでメールフォームのリクエストをバリデーションすることができます。適切なバリデーションルールを定義することで、入力データの妥当性を確認し、必要な処理を行うことができます。