Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich Formularvalidierung und Fehleraufforderungen im Rebet-Framework?

Wie verwende ich Formularvalidierung und Fehleraufforderungen im Rebet-Framework?

WBOY
WBOYOriginal
2023-06-03 09:10:451530Durchsuche

Rebet ist ein leichtes Webanwendungs-Framework auf PHP-Basis, das viele Funktionen bietet, um Entwicklern die schnelle Entwicklung leistungsstarker Webanwendungen zu erleichtern. Darunter sind Formularvalidierung und Fehleraufforderung ein wichtiges Bindeglied bei der Entwicklung von Webanwendungen und gehören auch zu den Funktionen, die das Rebet-Framework bereitstellt.

Formularüberprüfung und Fehleraufforderungen werden hauptsächlich verwendet, um zu überprüfen, ob die vom Benutzer übermittelten Formulardaten den Anforderungen entsprechen, und um den Benutzer rechtzeitig über die Fehlerinformationen zu benachrichtigen, damit der Benutzer den Fehler beheben kann Informationen und erneut einreichen.

Das Rebet-Framework stellt verwandte Komponenten und Methoden für die Formularvalidierung und Fehleraufforderungen bereit. Lassen Sie uns vorstellen, wie diese Komponenten und Methoden im Rebet-Framework verwendet werden.

1. Formularvalidierungsregeln festlegen

Bevor Sie das Rebet-Framework für die Formularvalidierung verwenden, müssen Sie zunächst die Formularvalidierungsregeln anpassen. Im Rebet-Framework können Sie Validatoren verwenden, um Formularvalidierungsregeln zu definieren. Im folgenden Code definieren wir einen UserValidator, um die vom Benutzer übermittelten Formulardaten zu überprüfen:

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

Im obigen Code verwenden wir zwei Validierungsregeln, RequireRule und EmailRule, was bedeutet, dass die Eingabe nicht zulässig ist leer sein und EmailRule gibt an, dass die Eingabe im E-Mail-Format erfolgen muss. Gleichzeitig haben wir auch einige Fehlermeldungen angepasst, wenn die oben genannten Regeln beim Ausfüllen des Formulars nicht erfüllt werden.

2. Überprüfung der Formulardaten

Nachdem Sie einen benutzerdefinierten UserValidator haben, können Sie ihn verwenden, um die vom Benutzer übermittelten Formulardaten zu überprüfen. Im folgenden Codebeispiel definieren wir einen UserController, um von Benutzern übermittelte Formulardaten zu empfangen und zu überprüfen.

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

Im obigen Code haben wir die Methode $request->validate verwendet, um die Benutzerformulardaten zu validieren, und try-catch verwendet, um die ValidationFailedException-Ausnahme zu erfassen. Wenn die vom Benutzer übermittelten Formulardaten nicht den benutzerdefinierten UserValidator-Regeln entsprechen, wird eine ValidationFailedException ausgelöst. Wir können die Fehlerinformationen über die Methode $e->getErrors() im Catch abrufen.

3. Fehlermeldung

Wenn der Benutzer das Formular ausfüllt und die benutzerdefinierten UserValidator-Regeln nicht erfüllt sind, wird die entsprechende Fehlermeldung angezeigt. Im Rebet-Framework können Sie die Fehleraufforderungskomponente (Flash) verwenden, um Fehleraufforderungen zu implementieren, wie im folgenden Code gezeigt:

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

Im obigen Code verwenden wir die Flash-Komponente, um Fehleraufforderungen auszugeben . Wenn im Try-Catch-Block die Formularüberprüfung fehlschlägt, verwenden wir die Methode $flash->error, um die Fehlermeldung anzuzeigen. Verwenden Sie gleichzeitig die Redirect-Komponente, um zur vorherigen Seite zurückzukehren und die Seite zu aktualisieren.

Zusammenfassung

Durch die obige Einführung verstehen wir, wie Formularvalidierung und Fehleraufforderungen im Rebet-Framework verwendet werden. Durch benutzerdefinierte Validierungsregeln, Formulardatenüberprüfung, Fehleraufforderungen und andere Schritte können wir die vom Benutzer übermittelten Formulardaten leicht überprüfen und Fehler melden, was die Benutzererfahrung der Webanwendung verbessert und auch die Stabilität der Webanwendung erhöht Sicherheit.

Das obige ist der detaillierte Inhalt vonWie verwende ich Formularvalidierung und Fehleraufforderungen im Rebet-Framework?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn