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:
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!