Validierungs-Tipps für Laravel

Leere Werte bei der E-Mail- oder URL-Validierung in Laravel erlauben

Um leere Werte bei der E-Mail- oder URL-Validierung zu erlauben muss nullable zu den Validierungsoptionen hinzugefügt werden:

$validatedData = $request->validate( [
    'name'        => 'required|max:100',
    'email'       => 'nullable|email',
    'website'     => 'nullable|url'
] );

Hinweis: Es gibt einen Unterschied zwischen nullable und sometimes. Wird nullable verwendet, kann der Wert null oder empty sein. Wird sometimes verwendet wird die Validierung ausgelassen, wenn der Wert im Input-Array nicht vorhanden ist. Wenn der Wert null oder empty ist, dann wird bei sometimes die Validierung nicht übersprungen.

Validierung auf gültige Checkbox IDs in Laravel

Bei einem Formular mit mehren Checkboxen (z.B. Kategorien, Tags, …) kann über folgenden Code eine Überprüfung der IDs auf Gültigkeit erreicht werden:

public function store(Request $request)
{
    $validatedData = $request->validate([
        'category' => 'required', // validates, that at least one checkbox is selected
        'category.*' => 'exists:categories,id', // validates, that a matching database entry is present
    ]);

    // more code
}

Der category.* Validator prüft jede ID aus dem $request->category-Array auf einen passenden Datenbank-Eintrag in der categories-Tabelle.

Validierung auf mindestens eine selektierte Checkbox in Laravel

Bei einem Formular mit mehren Checkboxen (z.B. Kategorien, Tags, …) kann eine Validierung erforderlich sein, die prüft, ob mindestens eine Checkbox selektiert wurde. Dies lässt sich einfach mit dem required Option validieren. Diese prüft, ob in folgendem Beispiel, ob mindestens eine category ausgewählt wurde:

public function store(Request $request)
{
    $validatedData = $request->validate([
        'category' => 'required',
    ]);

    // more code

}

Schreibe einen Kommentar