ホームページ > PHPフレームワーク > Laravel > Laravel 開発: Laravel Validation を使用してフォームリクエストを検証する方法?

Laravel 開発: Laravel Validation を使用してフォームリクエストを検証する方法?

王林
リリース: 2023-06-13 13:34:52
オリジナル
1076 人が閲覧しました

Laravel は、開発者の作業をスピードアップするための便利な機能を多数提供する人気の PHP Web 開発フレームワークです。その中でも、Laravel Validationはフォームリクエストやユーザーが入力したデータを簡単に検証できる非常に実用的な機能です。この記事では、Laravel Validation を使用してフォームリクエストを検証する方法を紹介します。

Laravel Validation とは

Laravel Validation は、Laravel フレームワークに組み込まれたフォーム検証メソッドです。これは、フォームリクエストとユーザー入力データを検証するための、簡潔で標準化された使いやすい方法を提供します。さまざまなルールを使用してさまざまなデータ型を検証できるため、コードの冗長性が減り、コード開発プロセスが簡素化されます。

Laravel Validation の使用方法

まず、コントローラーで Laravel の Validation クラスを使用する必要があります:

use IlluminateSupportFacadesValidator;
ログイン後にコピー

リクエストを検証する必要がある場合は、Validator を使用できます。 :make() メソッド:

public function store(Request $request)
{
    $validator = Validator::make($request->all(), [
        'name' => 'required|min:3|max:255',
        'email' => 'required|email|unique:users,email',
        'password' => 'required|min:8|confirmed',
    ]);

    if ($validator->fails()) {
        return redirect('register')
                    ->withErrors($validator)
                    ->withInput();
    }

    // 在此处写入数据到数据库的逻辑
}
ログイン後にコピー

上記のコードでは、Validator::make() メソッドを使用して検証ルールを定義します。 make メソッドに渡される最初のパラメータは、検証する必要があるリクエスト データです。 2 番目のパラメータは検証ルールを定義する配列です。配列内のキーは検証する必要があるフィールドの名前で、値は文字列形式の検証ルールです。

上記のコードでは、3 つのフィールドを定義します:

  • name: 必須、最小文字数は 3、最大文字数は 255
  • email: 必須、電子メール形式、一意性検証
  • password: 必須、最小文字数は 8 で、password_confirmation フィールドと一致します

いずれかのルールが検証に失敗した場合、エラー メッセージを送信する 登録ページに戻り、withInput() メソッドを使用して、ユーザーが以前に送信したデータを返します。

一般的に使用される検証ルール

Laravel Validation を使用する場合、多くのルールを使用できます。いくつかの一般的なルールを以下に示します。

  • 必須: このフィールドは必ず入力する必要があります。
  • email: このフィールドは電子メール アドレス仕様
  • unique:table_name に準拠する必要があります。 、 field_name: このフィールドの値は、指定されたデータ テーブル内で一意である必要があります
  • min:num: このフィールドの最小長は num 文字である必要があります
  • max:num: の最大長このフィールドは num 文字である必要があります
  • numeric: フィールドは数値である必要があります
  • integer: フィールドは整数である必要があります
  • alpha: フィールドは単語である必要があります文字 (a-z、A-Z)
  • alpha_num: フィールドは英数字である必要があります。
  • confirmed: フィールドは、field_name_confirmation という名前のフィールド値と一致する必要があります。

これらのルールは、検証ルールの一部ですが、さらに多くのルールを使用してデータを検証することもできます。検証ルールの詳細なリストは、Laravel のドキュメントにあります。

カスタム検証ルール

データを検証するためにカスタム ルールが必要になる場合があります。 Laravel では、Validator::extend() メソッドを使用してカスタム検証ルールを実装できます。以下はカスタム ルールの例です:

Validator::extend('phone_number', function ($attribute, $value, $parameters, $validator) {
    return preg_match('/^1[3-9][0-9]{9}$/', $value);
});
ログイン後にコピー

この例では、$formData['phone_number'] が独自に定義した仕様を満たしているかどうかを検証するカスタム ルール「phone_number」を定義します。検証が成功した場合は true を返し、そうでない場合は false を返します。

カスタマイズされたエラー メッセージ

エラー メッセージをカスタマイズして、より人道的なエラー メッセージにすることもできます。以下はカスタム エラー メッセージの例です。

$validator = Validator::make($request->all(), [
    'email' => 'required|email|unique:users,email',
    'password' => 'required|min:8|confirmed',
]);

// 自定义错误信息
$validator->setAttributeNames([
    'email' => '邮箱',
    'password' => '密码',
]);

// 自定义错误信息模板
$validator->setCustomMessages([
    'required' => ':attribute字段不能为空',
    'email' => '请输入正确的邮箱地址',
    'unique' => ':attribute已经被占用了',
    'min' => ':attribute长度不能小于:min个字符',
    'confirmed' => '密码和确认密码不匹配',
]);
ログイン後にコピー

上記のコードでは、setAttributeNames() メソッドを使用してフィールド名を変更し、エラー メッセージをより人道的なものにしています。また、setCustomMessages() メソッドを使用してエラー メッセージ テンプレートを定義し、エラー メッセージをより簡単かつ迅速に変更し、よりユーザー フレンドリにできるようにしました。

概要

上記の紹介を通じて、Laravel Validation を使用してフォームリクエストを検証する方法を学びました。これにより、誤ったユーザー入力によって引き起こされるエラーを回避し、エラー メッセージをより便利に処理して、開発時間を節約できます。 Laravel Validation により、アプリケーションの堅牢性とセキュリティをより確実に確保できます。

以上がLaravel 開発: Laravel Validation を使用してフォームリクエストを検証する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート