ホームページ  >  記事  >  バックエンド開発  >  Rebet フレームワークでフォーム検証とエラー プロンプトを使用するにはどうすればよいですか?

Rebet フレームワークでフォーム検証とエラー プロンプトを使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-03 09:10:451564ブラウズ

Rebet は、PHP をベースとした軽量の Web アプリケーション フレームワークであり、開発者が高パフォーマンスの Web アプリケーションを迅速に開発できるようにするための多くの機能を提供します。その中でも、フォーム検証とエラー プロンプトは Web アプリケーション開発における重要なリンクであり、Rebet フレームワークによって提供される機能の 1 つでもあります。

フォーム検証とエラー プロンプトは主に、ユーザーが送信したフォーム データが要件を満たしているかどうかを検証し、ユーザーがエラー情報を修正して再送信できるようにエラー情報をユーザーに速やかに通知するために使用されます。

Rebet フレームワークには、フォーム検証とエラー プロンプトに関連するコンポーネントとメソッドが用意されています。Rebet フレームワークでこれらのコンポーネントとメソッドを使用する方法を紹介しましょう。

1. フォーム検証ルールの設定

Rebet フレームワークを使用してフォーム検証を行う前に、まずフォーム検証ルールをカスタマイズする必要があります。 Rebet フレームワークでは、バリデーターを使用してフォーム検証ルールを定義できます。次のコードでは、ユーザーによって送信されたフォーム データを検証するための UserValidator を定義します:

use RebetValidationValidator;
use RebetValidationRulesRequireRule;
use RebetValidationRulesEmailRule;

class UserValidator extends Validator
{
    protected function rules() : array
    {
        return [
            'name'  => [ new RequireRule() ],
            'email' => [ new RequireRule(), new EmailRule() ],
            'phone' => [],
        ];
    }

    protected function messages() : array
    {
        return [
            'name.require'  => '请输入您的姓名',
            'email.require' => '请输入您的邮箱',
            'email.email'   => '请输入正确的邮箱地址',
        ];
    }
}

上記のコードでは、2 つの検証ルール、RequireRule と EmailRule を使用します。RequireRule は、入力が空であってはいけないことを意味します、EmailRule は、入力が電子メール形式である必要があることを意味します。同時に、いくつかのエラー メッセージもカスタマイズされており、ユーザーがフォームに入力するときに上記のルールが満たされていない場合、対応するエラー プロンプトが表示されます。

2. フォーム データの検証

カスタマイズされた UserValidator を取得したら、それを使用してユーザーが送信したフォーム データを検証できます。次のコード例では、ユーザーが送信したフォーム データを受信して​​検証するための UserController を定義します。

use RebetHttpRequest;
use RebetValidationValidationFailedException;

class UserController
{
    public function register(Request $request)
    {
        try {
            $validate = $request->validate(UserValidator::class); // 使用UserValidator来验证表单数据

            // 验证通过,进行相关操作
            $name  = $validate->get('name');
            $email = $validate->get('email');
            $phone = $validate->get('phone');

            // ...

        } catch (ValidationFailedException $e) {
            // 验证未通过,输出错误信息
            $errors = $e->getErrors();
        }
    }
}

上記のコードでは、$request->validate メソッドを使用してユーザー フォーム データを検証し、try-catch を使用して ValidationFailedException 例外をキャプチャしました。ユーザーが送信したフォーム データがカスタム UserValidator ルールに準拠していない場合、ValidationFailedException がスローされ、キャッチ内の $e->getErrors() メソッドを通じてエラー情報を取得できます。

3. エラー プロンプト

ユーザーがフォームに入力するときに、カスタム UserValidator ルールを満たしていない場合は、対応するエラー プロンプトが表示されます。 Rebet フレームワークでは、次のコードに示すように、エラー プロンプト コンポーネント (Flash) を使用してエラー プロンプトを実装できます。

use RebetToolsUtilityArrays;
use RebetHttpSessionFlash;

class UserController
{
    public function register(Request $request)
    {
        try {
            $validate = $request->validate(UserValidator::class);

            // 验证通过,进行相关操作
            $name  = $validate->get('name');
            $email = $validate->get('email');
            $phone = $validate->get('phone');

            // ...

        } catch (ValidationFailedException $e) {
            // 验证未通过,输出错误信息
            $errors = $e->getErrors();

            $flash = new Flash();
            Arrays::each($errors, function ($field, $errors) use ($flash) {
                $flash->error($field, $errors[0]); // 错误提示
            });

            // 返回前一页并刷新页面
            return Response::redirect()->back()->refresh();
        }
    }
}

上記のコードでは、Flash コンポーネントを使用してエラー プロンプトを出力します。 try-catch ブロックでは、フォームの検証が失敗した場合、$flash->error メソッドを使用してエラー メッセージを表示します。同時に、リダイレクト コンポーネントを使用して前のページに戻り、ページを更新します。

概要

上記の紹介を通じて、Rebet フレームワークでフォーム検証とエラー プロンプトを使用する方法を学びました。カスタム検証ルール、フォーム データ検証、エラー プロンプト、その他の手順を通じて、ユーザーが送信したフォーム データを簡単に検証し、エラー プロンプトを提供できます。これにより、Web アプリケーションのユーザー エクスペリエンスが向上し、Web アプリケーションの安定性も向上します。そしてセキュリティ。

以上がRebet フレームワークでフォーム検証とエラー プロンプトを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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