Heim >Backend-Entwicklung >PHP-Tutorial >Wie validiert man Arrays in Laravel ordnungsgemäß?

Wie validiert man Arrays in Laravel ordnungsgemäß?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-25 00:00:44958Durchsuche

How to Properly Validate Arrays in Laravel?

Array-Validierung in Laravel

Beim Umgang mit Array-Daten in Laravel treten Validierungsprobleme auf. Wenn Sie eine leere POST-Anfrage senden, gehen Sie davon aus, dass die Validierung fehlschlägt, sie wird jedoch als wahr zurückgegeben.

Lösung

Das Problem liegt darin, wie Sie das Array validieren. Das Sternchen (*)-Symbol in Laravel validiert die einzelnen Werte innerhalb des Arrays, nicht das Array selbst. Um das Array zu validieren, verwenden Sie die folgende Syntax:

$validator = Validator::make($request->all(), [
    "names" => "required|array|min:3",
    "names.*" => "required|string|distinct|min:3",
]);

Erklärung

In diesem Beispiel:

  • "names" prüft, ob Das Array selbst existiert und hat mindestens 3 Elemente.
  • „names.*“ validiert die einzelnen Werte im „names“-Array, um sicherzustellen, dass es sich um Zeichenfolgen handelt, die eindeutig sind und mindestens 3 Zeichen lang sind.

Mit dieser aktualisierten Validierungslogik schlagen leere POST-Anfragen wie erwartet fehl.

Validierungsverbesserungen in Laravel 5.5

Ab Laravel 5.5 können Sie eine vereinfachte Syntax verwenden für die Array-Validierung durch Aufruf der Methode „validate()“ direkt für das Request-Objekt:

$data = $request->validate([
    "names" => "required|array|min:3",
    "names.*" => "required|string|distinct|min:3",
]);

Das obige ist der detaillierte Inhalt vonWie validiert man Arrays in Laravel ordnungsgemäß?. 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