Heim  >  Artikel  >  PHP-Framework  >  Laravel-Änderungsbestätigungsaufforderung auf Chinesisch

Laravel-Änderungsbestätigungsaufforderung auf Chinesisch

WBOY
WBOYOriginal
2023-05-29 10:20:081047Durchsuche

Laravel ist ein Open-Source-PHP-Webanwendungs-Framework, das die Eigenschaften eines prägnanten Codes aufweist, leicht zu verstehen und zu erlernen ist und voller Innovationen ist, sodass es von immer mehr Entwicklern begrüßt wird. Unter anderem ist die Validierung ein sehr wichtiger Teil des Laravel-Frameworks, das Entwicklern hilft, von Benutzern übermittelte Formulardaten zu überprüfen und zu schützen. Die Standard-Verifizierungsaufforderungen von Laravel sind jedoch alle auf Englisch, was für die Verwendung auf chinesischen Websites nicht geeignet ist. Als Nächstes besprechen wir, wie die Verifizierungsaufforderungen des Laravel-Frameworks in Chinesisch geändert werden.

0. Einführung

Bevor wir mit der formalen Änderungsarbeit beginnen, müssen wir mehrere Konzepte klären.

Erstens ist der Standardvalidator des Laravel-Frameworks IlluminateValidationValidator.

Zweitens verwendet das Laravel-Framework standardmäßig die Validator-Komponente des Symfony-Frameworks.

Drittens bietet das Laravel-Framework selbst eine Vielzahl von Methoden zum Ändern der Informationen zur Überprüfungsaufforderung, z. B. das Ändern des Nachrichtenarrays im Validator, die Verwendung von Sprachpaketen usw.

1. Ändern Sie das Nachrichtenarray im Validator

Im Laravel-Framework gibt es ein Nachrichtenarray in der Validator-Klasse, das alle Informationen zur Überprüfungsaufforderung speichert Validator: Wir können die Informationen zur Überprüfungsaufforderung ändern, indem wir das Array ändern. Das Folgende ist ein Beispielcode:

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

$validator->messages()->add(
    'email.unique', '该邮箱已被注册,请使用其他邮箱。'
);

Im obigen Code verwenden wir die Methode Validator::make, um einen Validator zu erstellen und drei Validierungsregeln festzulegen: Der Name ist erforderlich und die Länge darf 255 Zeichen nicht überschreiten ; E-Mail ist erforderlich, muss eine gültige E-Mail-Adresse sein und in der Benutzertabelle eindeutig sein; Passwort ist erforderlich, Passwort bestätigen und darf nicht weniger als 6 Zeichen lang sein. Dann haben wir eine neue Eingabeaufforderungsnachricht hinzugefügt, indem wir die Methode $validator->messages()->add aufgerufen haben und angegeben haben, dass bei einem Fehler der für das E-Mail-Feld eindeutigen Validierungsregel die Meldung „Die E-Mail-Adresse wurde bitte registriert“ angezeigt werden soll Andere E-Mail-Adressen verwenden.“ Auf diese Weise können wir die Informationen zur Bestätigungsaufforderung flexibel ändern.

Es ist zu beachten, dass die mit dieser Methode geänderten Eingabeaufforderungsinformationen erst wirksam werden, wenn der aktuelle Validator erstellt wird. Wenn sie für alle Validatoren wirksam werden sollen, müssen sie in jedem Validator geändert werden. Fügen Sie es erneut hinzu.

2. Verwenden Sie das Sprachpaket

Zusätzlich zur direkten Änderung des Nachrichtenarrays in Validator bietet Laravel auch eine weitere praktische Methode zum Ändern der Verifizierungsaufforderungsinformationen, nämlich die Verwendung von Sprache Tasche. Das Laravel-Framework stellt standardmäßig mehrere Sprachpakete bereit, darunter Englisch, Spanisch, Französisch, Deutsch, Japanisch, Chinesisch usw. Wir können die entsprechenden Informationen zur Bestätigungsaufforderung im Sprachpaket finden und ändern.

Die Verwendung von Sprachpaketen in Laravel ist sehr einfach. Sie müssen lediglich den entsprechenden Sprachpaketordner im Verzeichnis resources/lang erstellen, um mit der Änderung der Verifizierungsaufforderungsinformationen zu beginnen. Wenn wir beispielsweise die Informationen zur Bestätigungsaufforderung in Chinesisch ändern müssen, müssen wir den Ordner zh-CN im Verzeichnis resources/lang erstellen, die Datei validation.php in diesem Ordner erstellen und dann die geänderten Informationen zur Bestätigungsaufforderung einfach schreiben Gehen Sie zu dieser Datei. Der Beispielcode lautet wie folgt:

<?php
// resources/lang/zh-CN/validation.php

return [
    'required' => ' :attribute 为必填项。',
    'max' => [
        'numeric' => ' :attribute 不能大于 :max。',
        'file' => ' :attribute 不能大于 :max kb。',
        'string' => ' :attribute 不能超过 :max 个字符。',
        'array' => ' :attribute 不能超过 :max 个项。',
    ],
    'email' => ' :attribute 必须为合法的邮箱地址。',
    'unique' => ' :attribute 已存在,请使用其他 :attribute。',
    'confirmed' => '两次输入的 :attribute 不一致。',
];

Im obigen Code definieren wir Eingabeaufforderungsinformationen für mehrere Verifizierungsregeln wie erforderlich und max. Diese Informationen werden im Laravel-Framework verwendet, um die vom Benutzer übermittelten Formulardaten zu überprüfen und eine Meldung zu senden, wenn die Überprüfung fehlschlägt. Diese Methode eignet sich besser zum Ändern der Verifizierungsaufforderungsinformationen auf der gesamten Website, ohne sie jedem Validator-Objekt hinzuzufügen.

3. Übersetzung der Symfony-Verifizierungskomponente

Zusätzlich zu den beiden oben genannten Methoden bietet die Symfony-Verifizierungskomponente auch eine integrierte Übersetzungsfunktion Integrieren Sie es in das Laravel-Framework. Die Informationen zur Überprüfungsaufforderung werden ins Chinesische übersetzt.

Um die Übersetzungsfunktion der Symfony-Verifizierungskomponente zu nutzen, müssen wir zunächst die Symfony-/Übersetzungskomponente wie folgt installieren:

composer require symfony/translation

Dann müssen wir die einrichten Übersetzer im Laravel-Framework. Fügen Sie den folgenden Code in der Boot-Methode der AppServiceProvider-Klasse hinzu:

use IlluminateSupportFacadesLang;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->app->singleton('translator', function($app){
            $loader = new SymfonyComponentTranslationLoaderArrayLoader;
            $translator = new SymfonyComponentTranslationTranslator('zh');
            $translator->addLoader('array', $loader);
            $translator->addResource('array', require __DIR__ . '/../vendor/symfony/validator/Resources/translations/validators.zh.xlf', 'zh');
            $loader->load($this->getTranslatorMessages());

            return new IlluminateTranslationTranslator($translator);
        });
    }

    public function getTranslatorMessages()
    {
        $messages = [
            'required' => ':attribute 为必填项。',
            'max' => [
                'numeric' => ':attribute 不能大于 :max。',
            ],
            'email' => ':attribute 必须为合法的邮箱地址。',
            'unique' => ':attribute 已存在,请使用其他 :attribute。',
            'confirmed' => '两次输入的 :attribute 不一致。',
        ];

        return $messages;
    }
}

Im obigen Code verwenden wir die Übersetzungsfunktion, die von der Symfony-Verifizierungskomponente im AppServiceProvider bereitgestellt wird. Unter anderem haben wir die Sprache des Übersetzers auf Chinesisch eingestellt und die Übersetzungsdatei validators.zh.xlf geladen, die mit der Symfony-Verifizierungskomponente geliefert wird. In der Methode getTranslatorMessages definieren wir die Verifizierungsaufforderungsnachrichten, die übersetzt werden müssen. Wenn das Laravel-Framework die Formulardaten validiert, übersetzt die Symfony-Übersetzungskomponente auf diese Weise automatisch die englischen Validierungsaufforderungsinformationen ins Chinesische.

Es ist zu beachten, dass diese Methode problematischer ist und die Installation neuer Komponenten und die Änderung der ServiceProvider-Klasse des Laravel-Frameworks erfordert.

4. Zusammenfassung

Die oben genannten Methoden sind Methoden zum Ändern der Informationen zur Überprüfung des Laravel-Frameworks, einschließlich der direkten Änderung des Nachrichtenarrays im Validator, der Verwendung von Sprachpaketen und der Übersetzung der Symfony-Überprüfung Komponenten usw. . Für unterschiedliche Szenarien eignen sich unterschiedliche Methoden, die je nach Bedarf ausgewählt werden können.

In der tatsächlichen Entwicklung verwenden wir normalerweise eine Kombination der oben genannten Methoden, z. B. das Hinzufügen benutzerdefinierter Überprüfungsaufforderungsinformationen im Validator und das Überschreiben und Anpassen im Sprachpaket, um die bereitgestellte Präzision sicherzustellen zentralisierte Steuerung und kann die Verwaltung und Wartung des gesamten Standorts erleichtern.

Das obige ist der detaillierte Inhalt vonLaravel-Änderungsbestätigungsaufforderung auf Chinesisch. 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
Vorheriger Artikel:Laravel-Abfrage am größtenNächster Artikel:Laravel-Abfrage am größten