Ich versuche, Array POST in Laravel zu validieren:
$validator = Validator::make($request->all(), [
"name.*" => 'required|distinct|min:3',
"amount.*" => 'required|integer|min:1',
"description.*" => "required|string"
]);
Ich sende einen leeren POST und erhalte diesen if ($validator->fails()) {}
als False
. Dies bedeutet, dass die Validierung wahr ist, aber nicht.
Wie validiere ich ein Array in Laravel? Wenn ich ein Formular mit abschickeinput name="name[]"
php
laravel
laravel-5.4
Darama
quelle
quelle
$request->validate([...])
. Eine Ausnahme wird ausgelöst, wenn die Daten die Validierung nicht bestehen.Ich habe dieses Array als meine Anforderungsdaten aus einem HTML + Vue.js-Datenraster / einer Tabelle +:
Und verwenden Sie dies, um zu überprüfen, welche ordnungsgemäß funktioniert:
quelle
Die empfohlene Methode zum Schreiben von Validierungs- und Autorisierungslogik besteht darin, diese Logik in separate Anforderungsklassen einzuteilen. Auf diese Weise bleibt Ihr Controller-Code sauber.
Sie können eine Anforderungsklasse durch Ausführen erstellen
php artisan make:request SomeRequest
.rules()
Definieren Sie in der Methode jeder Anforderungsklasse Ihre Validierungsregeln:Schreiben Sie in Ihren Controller Ihre Routenfunktion wie folgt:
Jede Anforderungsklasse verfügt über Hooks / Methoden vor und nach der Validierung, die basierend auf Geschäftslogik und Sonderfällen angepasst werden können, um das normale Verhalten der Anforderungsklasse zu ändern.
Sie können übergeordnete Anforderungsklassen für ähnliche Arten von Anforderungen (z. B.
web
undapi
) erstellen und dann eine allgemeine Anforderungslogik in diesen übergeordneten Klassen kapseln.quelle
Etwas komplexere Daten, eine Mischung aus den Antworten von @ Laran und @Nisal Gunawardana
Die Validierungsregel lautet
quelle
Sie müssen das Eingabearray durchlaufen und Regeln für jede Eingabe hinzufügen, wie hier beschrieben: Regeln durchlaufen
Hier ist ein Code für dich:
quelle