laravelでの検証方法

WBOY
リリース: 2023-05-20 22:16:36
オリジナル
1316 人が閲覧しました

Laravel は、使いやすさと強力な機能を兼ね備えた人気の PHP フレームワークです。重要な機能の 1 つは検証であり、Laravel はフォームによって送信されたデータを簡単に検証し、アプリケーション データの正確性とセキュリティを確保するための複数の検証方法を提供します。この記事ではLaravelでよく使われる検証方法を紹介します。

  1. フォーム検証

フォーム検証は、Laravel で最も一般的に使用される検証方法であり、フォームによって送信されたデータが指定されたルールに準拠しているかどうかを検証するために使用されます。各検証ルールでは、検証が失敗した場合に出力されるエラー メッセージを定義できます。以下はフォーム検証の例です。

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

    // 数据通过验证,将数据存储到数据库中
}
ログイン後にコピー

上記の例では、$request->validate([]) メソッドを使用してリクエスト内のデータを検証します。このメソッドは、検証ルールを含む配列を受け入れます。配列のキー名は検証するフィールド名を表し、キー値はフィールドの検証ルールを表します。

各検証ルールはパイプ文字 | で区切られており、これにはルールの検証パラメータが含まれます。たとえば、required|string|max:255 は、フィールドが必須であり、文字列型で、最大長が 255 文字であることを示します。 unique:users は、users テーブル内のこのフィールドの一意性を検証することを意味します。

検証に失敗した場合は、自動的にエラー メッセージが返されます。検証が成功すると、次のコード ロジックが引き続き実行されます。

  1. JSON 検証

Laravel は、JSON データ検証メソッドも提供します。 JSON 検証は通常、サーバーに送信された JSON データが指定されたルールに準拠しているかどうかを検証するために API インターフェイス開発で使用されます。フォーム検証と同様に、JSON 検証でも検証ルールとエラー メッセージを定義できます。

以下は JSON 検証の例です:

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

    if ($validator->fails()) {
        return response()->json([
            'status' => 'error',
            'message' => $validator->errors(),
        ], 422);
    }

    // 数据通过验证,将数据存储到数据库中
}
ログイン後にコピー

上の例では、Validator::make() メソッドを使用して検証インスタンスを作成します。フォーム検証とは異なり、make() メソッドでは、検証データと検証ルールという 2 つのパラメータを渡す必要があります。検証が失敗した場合は、エラー情報を含む JSON 応答を返す必要があります。検証が成功すると、次のコード ロジックが引き続き実行されます。

  1. カスタム検証ルール

Laravel の組み込み検証ルールに加えて、開発者は検証ルールをカスタマイズすることもできます。カスタム ルールは、検証時間、パスワードの強度などの特別な検証ニーズを満たすことができます。

以下はカスタム検証ルールの例です:

Validator::extend('strong_password', function ($attribute, $value, $parameters, $validator) {
    return preg_match('/^(?=.*[a-zA-Z])(?=.*d)(?=.*(_|[^w])).+$/', $value);
});

$validator = Validator::make($request->all(), [
    'password' => 'required|string|min:8|strong_password',
]);
ログイン後にコピー

上の例では、Validator::extend() メソッドを使用してカスタム検証ルールを作成します。 strong_password。このメソッドは、ルール名とクロージャ関数の 2 つのパラメータを受け入れます。クロージャ関数は、検証フィールド名、検証フィールド値、検証パラメータ、バリデータ オブジェクトの 4 つのパラメータを受け入れます。

カスタム ルールを定義した後、バリデーター インスタンスでカスタム ルールを使用する必要があります。上記のコードに示すように、min:8|strong_password は、パスワードが 8 文字以上であり、少なくとも 1 つの大文字と小文字、1 つの数字、および 1 つの特殊文字 (アンダースコアを除く) を含む必要があることを意味します。 _)。

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

アプリケーションを開発するとき、多くの場合、検証エラー メッセージをカスタマイズする必要があります。 Laravel では、message() メソッドを使用してエラー メッセージをカスタマイズできます。

次に、検証エラー メッセージをカスタマイズする例を示します。

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

$validator->message('email.required', '邮箱不能为空');

if ($validator->fails()) {
    return response()->json([
        'status' => 'error',
        'message' => $validator->errors(),
    ], 422);
}
ログイン後にコピー

上の例では、message() メソッドを使用してエラー メッセージをカスタマイズします。このメソッドは、検証ルール名とカスタム エラー メッセージの 2 つのパラメータを受け入れます。

上記は、Laravel で一般的に使用される検証方法です。アプリケーションを作成する場合、検証方法を正しく使用することで、データの正確性とセキュリティを効果的に確保できます。

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

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