Ich aktualisiere meine Laravel-Anwendung von 4 auf 5. Allerdings habe ich einen benutzerdefinierten Validator, den ich nicht zur Arbeit bringen kann.
In L4 habe ich eine validators.php -Datei erstellt und diese in global.php mit require app_path().'/validators.php';
eingefügt.
Ich habe versucht, etwas Ähnliches in L5 zu machen. Ich habe einen Validator in app / Validators / Validators.php abgelegt und meine composer.json aktualisiert.
%Vor%Aber jetzt wird auf keiner Seite mehr gerendert. Was habe ich falsch gemacht?
Versuchen Sie Folgendes:
Validator
class. ServiceProvider
erweitert. config/app.php
file hinzu. Sie können den Ordner bind in Services
wie folgt erstellen:
Verwenden Sie dann einen Dienstanbieter, um den Kern zu erweitern:
%Vor% Importieren Sie schließlich Ihren Serviceanbieter unter config/app.php
like so:
Hier ist, was ich beim Hinzufügen einer benutzerdefinierten Validierung getan habe. Dies ist für Laravel 5.1
PHP Artisan make:request MyFormValidationRequest
Datei wird unter app\Requests\MyFormValidationRequest.php
erstellt
Hier ist der ursprüngliche Code:
%Vor% WICHTIG : Ändern Sie den Rückgabewert von authorize()
method in true, wenn Sie keine Authentifizierung durchführen. Der Anfangswert ist falsch. Andernfalls erhalten Sie eine weiße Seite mit einer Fehlermeldung "Verboten".
Ich habe eine Regel unter der Funktion rules()
hinzugefügt, so sieht es aus wie
today_onwards
ist meine neue Validierung.
Ich habe einen Ordner namens "Dienste" im App-Ordner erstellt
Ich habe eine Datei namens "ValidatorExtended.php" im App \ Services-Ordner erstellt, hier ist der folgende Code:
%Vor%Hinweis: In der validateTodayOnwards-Methode legen Sie Ihre Logik fest. Der Name der Methode sollte immer in "validate" beginnen und dann der Name des neuen Validierungsschlüssels, der im Titel sein sollte,
Eine weitere Anmerkung Ihr Validierungsschlüssel sollte durch Unterstreichung und alle Kleinbuchstaben getrennt sein, in diesem Fall "today_onwards". Der Unterstrich sollte vor allen ersten Großbuchstaben im Methodennamen stehen. Ich hoffe ich habe es gut erklärt.
Die TodayOnwards-Methode entspricht dem Validierungsnamen von "today_onwards",
Ein anderes Beispiel: Wenn ich validateOldPassword erstellt habe, sollte Ihr Validierungsschlüssel "old_password" sein.
Ich habe den folgenden Code in app\Providers\AppServiceProvider.php
in% boot()
method hinzugefügt.
Vergessen Sie nicht, unterhalb der Bibliothek hinzuzufügen, eine ist die Validator-Klasse und die andere ist Ihre eigene Klasse, die " ValidatorExtended
" ist.
Hier sehen Sie, wie die ganze Datei aussieht, [ app\Providers\AppServiceProvider.php
]
Das ist es. erledigt. Sie haben Ihre eigene benutzerdefinierte Validierung erstellt.
Zusätzlich, wenn Sie es in Ihrem Controller verwenden möchten, ist unten der Code:
%Vor%Anstatt die Request-Klasse zu verwenden, verwenden Sie Ihre eigene Klasse, die eine Erweiterung der Request-Klasse ist.
Tags und Links php validation laravel-5 laravel