目次
Laravel Validation とは
Laravel Validation の使用方法
一般的に使用される検証ルール
カスタム検証ルール
カスタマイズされたエラー メッセージ
概要
ホームページ PHPフレームワーク Laravel Laravel 開発: Laravel Validation を使用してフォームリクエストを検証する方法?

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

Jun 13, 2023 pm 01:34 PM
laravel フォームの検証 validation

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 サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Laravel と CodeIgniter の最新バージョンの比較 Laravel と CodeIgniter の最新バージョンの比較 Jun 05, 2024 pm 05:29 PM

Laravel 9 と CodeIgniter 4 の最新バージョンでは、更新された機能と改善が提供されます。 Laravel9はMVCアーキテクチャを採用しており、データベース移行、認証、テンプレートエンジンなどの機能を提供します。 CodeIgniter4 は、HMVC アーキテクチャを使用してルーティング、ORM、およびキャッシュを提供します。パフォーマンスの面では、Laravel9 のサービスプロバイダーベースの設計パターンと CodeIgniter4 の軽量フレームワークにより、優れたパフォーマンスが得られます。実際のアプリケーションでは、Laravel9 は柔軟性と強力な機能を必要とする複雑なプロジェクトに適しており、CodeIgniter4 は迅速な開発や小規模なアプリケーションに適しています。

Laravel と CodeIgniter のデータ処理機能はどのように比較されますか? Laravel と CodeIgniter のデータ処理機能はどのように比較されますか? Jun 01, 2024 pm 01:34 PM

Laravel と CodeIgniter のデータ処理機能を比較します。 ORM: Laravel はクラスとオブジェクトのリレーショナル マッピングを提供する EloquentORM を使用しますが、CodeIgniter は ActiveRecord を使用してデータベース モデルを PHP クラスのサブクラスとして表します。クエリビルダー: Laravel には柔軟なチェーンクエリ API がありますが、CodeIgniter のクエリビルダーはよりシンプルで配列ベースです。データ検証: Laravel はカスタム検証ルールをサポートする Validator クラスを提供しますが、CodeIgniter には組み込みの検証関数が少なく、カスタム ルールの手動コーディングが必要です。実践例:ユーザー登録例はLarを示しています

Laravel と CodeIgniter ではどちらが初心者に優しいでしょうか? Laravel と CodeIgniter ではどちらが初心者に優しいでしょうか? Jun 05, 2024 pm 07:50 PM

初心者にとって、CodeIgniter は学習曲線が緩やかで機能は少ないですが、基本的なニーズはカバーしています。 Laravel は幅広い機能セットを提供しますが、学習曲線はわずかに急になります。パフォーマンスの点では、Laravel と CodeIgniter はどちらも良好なパフォーマンスを示します。 Laravel にはより広範なドキュメントとアクティブなコミュニティ サポートがあり、CodeIgniter はよりシンプルで軽量で、強力なセキュリティ機能を備えています。ブログアプリケーションを構築する実際のケースでは、Laravel の EloquentORM を使用するとデータ操作が簡素化されますが、CodeIgniter ではより手動の構成が必要になります。

Laravel と CodeIgniter: 大規模プロジェクトにはどちらのフレームワークが適していますか? Laravel と CodeIgniter: 大規模プロジェクトにはどちらのフレームワークが適していますか? Jun 04, 2024 am 09:09 AM

大規模プロジェクト用のフレームワークを選択する場合、Laravel と CodeIgniter にはそれぞれ独自の利点があります。 Laravel はエンタープライズレベルのアプリケーション向けに設計されており、モジュール設計、依存関係の注入、強力な機能セットを提供します。 CodeIgniter は、速度と使いやすさを重視した、小規模から中規模のプロジェクトに適した軽量フレームワークです。複雑な要件と多数のユーザーを伴う大規模なプロジェクトには、Laravel のパワーとスケーラビリティがより適しています。単純なプロジェクトやリソースが限られている状況では、CodeIgniter の軽量で迅速な開発機能がより理想的です。

Laravel - アーティザンコマンド Laravel - アーティザンコマンド Aug 27, 2024 am 10:51 AM

Laravel - アーティザン コマンド - Laravel 5.7 には、新しいコマンドを処理およびテストするための新しい方法が付属しています。これには職人コマンドをテストする新しい機能が含まれており、そのデモについては以下で説明します。

Laravel と CodeIgniter: 小規模プロジェクトにはどちらのフレームワークが適していますか? Laravel と CodeIgniter: 小規模プロジェクトにはどちらのフレームワークが適していますか? Jun 04, 2024 pm 05:29 PM

小規模なプロジェクトの場合、Laravel は強力な機能とセキュリティを必要とする大規模なプロジェクトに適しています。 CodeIgniter は、軽量さと使いやすさを必要とする非常に小規模なプロジェクトに適しています。

Laravel と CodeIgniter ではどちらのテンプレート エンジンが優れていますか? Laravel と CodeIgniter ではどちらのテンプレート エンジンが優れていますか? Jun 03, 2024 am 11:30 AM

Laravel の Blade と CodeIgniter の Twig テンプレート エンジンを比較し、プロジェクトのニーズと個人的な好みに基づいて選択してください。Blade は MVC 構文に基づいており、適切なコード編成とテンプレートの継承を促進します。 Twig は、柔軟な構文、強力なフィルター、拡張サポート、セキュリティ サンドボックスを提供するサードパーティ ライブラリです。

Laravel - ページネーションのカスタマイズ Laravel - ページネーションのカスタマイズ Aug 27, 2024 am 10:51 AM

Laravel - ページネーションのカスタマイズ - Laravel には、ユーザーまたは開発者がページネーション機能を組み込むのに役立つページネーションの機能が含まれています。 Laravel ページネーターは、クエリ ビルダーおよび Eloquent ORM と統合されています。自動ページネーションメソッド

See all articles