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
}