ホームページ >PHPフレームワーク >Laravel >laravelリクエストの検証ルール

laravelリクエストの検証ルール

PHPz
PHPzオリジナル
2023-05-26 15:08:371562ブラウズ

インターネット アプリケーションの継続的な開発に伴い、開発に Laravel フレームワークの使用を選択する企業や開発者が増えています。アプリケーションを開発する場合、データ入力の検証は、悪意のある攻撃や誤った入力によって引き起こされる問題からアプリケーションを保護するために非常に重要な部分です。 Laravel フレームワークでは、リクエスト検証ルールはデータ入力検証を実装する方法の 1 つです。

Laravel は、入力データを簡単に検証するためのシンプルかつ非常に強力な検証ルール構文を提供します。この記事では、Laravel のリクエスト検証ルールを使用して入力データを検証する方法について説明します。

  1. 基本的な検証ルール

Laravel フレームワークは、検証プロセス中にさまざまな目的に使用できるいくつかの基本的な検証ルールを提供します。一般的に使用される基本的な検証ルールをいくつか示します。

  • required: 必須フィールド。
  • email: 有効な電子メール アドレスである必要があります。
  • 数値: 数値である必要があります。
  • max: 最大値。
  • min: 最小値。
  • size: 指定されたサイズと一致する必要があります。
  • in: 指定された値のいずれかである必要があります。

コントローラーで検証ルールを使用するのは非常に簡単です。 「username」という名前の入力フィールドを検証する必要がある validateInput という名前のメソッドがあるとします。コードは次のようになります:

$this->validate($request, [
    'username' => 'required|min:3|max:20'
]);

上記のコードは、「username」フィールドが含まれているかどうかと、その長さを検証します。が 3 ~ 20 の場合、これらのルールが満たされない場合、ValidationException がスローされます。

  1. カスタム検証ルール

基本的な検証ルールに加えて、Laravel フレームワークでは独自の検証ルールを作成することもできます。これらのカスタム検証ルールは、特定のニーズに基づいて定義できます。 「パスワード」という名前の入力フィールドを確認する必要があるとします。フィールドには大文字、小文字、数字、特殊記号が含まれ、長さは 8 ~ 20 文字である必要があります。コードは次のようになります:

Step 1 :検証ルールを定義する

Validator::extend('my_password', function ($attribute, $value, $parameters, $validator) {
    return preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*(_|[^w])).+$/', $value) &&
        strlen($value) >= 8 && strlen($value) <= 20;
});

上記のコードでは、正規表現と文字列長を使用してパスワードを検証する「my_password」という名前の検証ルールを定義します。入力されたパスワードが要件を満たしている場合、この検証ルールは true を返します。

ステップ 2: カスタム検証ルールを使用する

カスタム検証ルールの使用は、基本的な検証ルールを使用することと同じです。カスタム検証ルールを検証ルール配列に追加するだけです。前の例で「password」の検証ルールを追加する必要があるとします。コードは次のようになります:

$this->validate($request, [
    'username' => 'required|min:3|max:20',
    'password' => 'required|my_password'
]);

上記のコードでは、検証ルールに「my_password」を追加します。パスワード入力がカスタム ルールと一致する場合、検証は成功します。

  1. エラー メッセージのカスタマイズ

Laravel フレームワークでは、検証エラー メッセージの形式を簡単にカスタマイズできます。以下に例を示します。

パスワード入力エラー メッセージをカスタマイズする必要があるとします。これを行うことができます。

ステップ 1: エラー メッセージを定義します。

$messages = [
    'my_password' => 'The password must contain upper and lowercase letters, numbers, and special symbols. Its length must be between 8 and 20 characters.'
];

上記では、コードでは、「my_password」というエラー メッセージを定義します。

ステップ 2: カスタム メッセージの使用

エラー メッセージの使用は、カスタム検証ルールの使用と似ています。カスタマイズされたメッセージを必要とする検証ルールを validate メソッドの 2 番目のパラメーターに渡すだけです。 「パスワード」フィールドのエラー メッセージをカスタマイズする必要があるとします。コードは次のようになります。

$this->validate($request, [
    'password' => 'required|my_password'
], $messages);

上記のコードでは、エラー メッセージを 3 番目のパラメーターとして validate メソッドに渡します。パスワード入力がカスタムルールと一致しない場合、Laravel は定義したエラーメッセージを表示します。

概要

この記事では、基本的な検証ルールとカスタム検証ルールの使用方法、エラーメッセージのカスタマイズ方法など、Laravel リクエスト検証ルールについて説明しました。 Laravel の検証ルール構文は非常にシンプルですが強力です。 Laravel のリクエスト検証ルールを使用すると、入力データを簡単に検証し、アプリケーションのセキュリティを確保できます。

以上がlaravelリクエストの検証ルールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。