Heim >Backend-Entwicklung >PHP-Tutorial >So validieren Sie Arrays in Laravel: Leere Übermittlungen und Best Practices?

So validieren Sie Arrays in Laravel: Leere Übermittlungen und Best Practices?

Barbara Streisand
Barbara StreisandOriginal
2024-11-27 16:29:11338Durchsuche

How to Validate Arrays in Laravel: Empty Submissions and Best Practices?

Arrays in Laravel validieren

Beim Versuch, ein Array in Laravel mit dem folgenden Code zu validieren:

$validator = Validator::make($request->all(), [
    "name.*" => 'required|distinct|min:3',
    "amount.*" => 'required|integer|min:1',
    "description.*" => "required|string"
]);

Es kann zu einem unerwarteten Szenario kommen, in dem eine leere POST-Übermittlung fälschlicherweise als gültig erkannt wird, was zu einem falschen Ergebnis führt positiv.

Diese Verwirrung entsteht, weil das Sternchensymbol (*) im Code dazu gedacht ist, die Werte innerhalb des Arrays zu validieren, nicht das Array selbst. Um dies zu beheben, sollten die Validierungsregeln geändert werden, um das Vorhandensein des Arrays zu prüfen:

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

In diesem angepassten Code:

  • „names“ stellt sicher, dass die „names Der Schlüssel „in den POST-Daten ist vorhanden und enthält ein Array.
  • „names.*“ validiert dann die einzelnen Werte innerhalb des Arrays „names“ und stellt sicher, dass sie erforderlich sind. eindeutige Zeichenfolgen mit einer Mindestlänge von 3 Zeichen.

Seit Laravel 5.5 kann ein vereinfachter Ansatz verwendet werden:

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

Diese kompakte Syntax führt die Validierung direkt am Request-Objekt durch. Dadurch entfällt die Notwendigkeit eines $validator-Vermittlers.

Das obige ist der detaillierte Inhalt vonSo validieren Sie Arrays in Laravel: Leere Übermittlungen und Best Practices?. 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