Maison  >  Article  >  développement back-end  >  Comment utiliser la validation de formulaire et les invites d'erreur dans le framework Rebet ?

Comment utiliser la validation de formulaire et les invites d'erreur dans le framework Rebet ?

WBOY
WBOYoriginal
2023-06-03 09:10:451572parcourir

Rebet est un framework d'application Web léger basé sur PHP, qui fournit de nombreuses fonctions pour permettre aux développeurs de développer rapidement des applications Web hautes performances. Parmi eux, la validation des formulaires et les invites d'erreur constituent un maillon important dans le développement d'applications Web, et sont également l'une des fonctions fournies par le framework Rebet.

La vérification du formulaire et les invites d'erreur sont principalement utilisées pour vérifier si les données du formulaire soumises par l'utilisateur répondent aux exigences et informer rapidement l'utilisateur des informations d'erreur afin que l'utilisateur puisse corriger les informations d'erreur et soumettre à nouveau.

Le framework Rebet fournit des composants et des méthodes associés pour la validation des formulaires et les invites d'erreur. Présentons comment utiliser ces composants et méthodes dans le framework Rebet.

1. Définir les règles de validation du formulaire

Avant d'utiliser le framework Rebet pour la validation du formulaire, vous devez d'abord personnaliser les règles de validation du formulaire. Dans le framework Rebet, vous pouvez utiliser des validateurs pour définir des règles de validation de formulaire. Dans le code suivant, nous définissons un UserValidator pour vérifier les données du formulaire soumises par l'utilisateur :

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'   => '请输入正确的邮箱地址',
        ];
    }
}

Dans le code ci-dessus, nous utilisons deux règles de validation, RequireRule et EmailRule signifie que l'entrée ne doit pas être vide, et EmailRule signifie. que l'entrée doit être au format e-mail. Dans le même temps, nous avons également personnalisé certains messages d'erreur. Si les règles ci-dessus ne sont pas respectées lorsque l'utilisateur remplit le formulaire, des invites d'erreur correspondantes seront affichées.

2. Vérification des données du formulaire

Une fois que vous disposez d'un UserValidator personnalisé, vous pouvez l'utiliser pour vérifier les données du formulaire soumises par l'utilisateur. Dans l'exemple de code suivant, nous définissons un UserController pour recevoir et vérifier les données de formulaire soumises par les utilisateurs.

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();
        }
    }
}

Dans le code ci-dessus, nous avons utilisé la méthode $request->validate pour valider les données du formulaire utilisateur, et utilisé try-catch pour intercepter l'exception ValidationFailedException. Lorsque les données du formulaire soumises par l'utilisateur ne sont pas conformes aux règles personnalisées de UserValidator, une ValidationFailedException sera levée. Nous pouvons obtenir les informations d'erreur via la méthode $e->getErrors() dans le catch.

3. Invite d'erreur

Lorsque l'utilisateur remplit le formulaire, s'il ne répond pas aux règles personnalisées de UserValidator, une invite d'erreur correspondante sera émise. Dans le framework Rebet, vous pouvez utiliser le composant d'invite d'erreur (Flash) pour implémenter l'invite d'erreur, comme indiqué dans le code suivant :

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();
        }
    }
}

Dans le code ci-dessus, nous utilisons le composant Flash pour afficher l'invite d'erreur. Dans le bloc try-catch, lorsque la vérification du formulaire échoue, nous utilisons la méthode $flash->error pour afficher le message d'erreur. En parallèle, utilisez le composant Redirect pour revenir à la page précédente et actualiser la page.

Résumé

Grâce à l'introduction ci-dessus, nous avons appris à utiliser la validation de formulaire et les invites d'erreur dans le framework Rebet. Grâce à des règles de validation personnalisées, à la vérification des données du formulaire, aux invites d'erreur et à d'autres étapes, nous pouvons facilement vérifier les données du formulaire soumises par l'utilisateur et fournir des invites d'erreur, ce qui améliore l'expérience utilisateur de l'application Web et augmente également la stabilité de l'application Web. et la sécurité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn