Wie kann ich eine benutzerdefinierte Regel in Laravel bedingt validieren?Php

PHP-Programmierer chatten hier
Anonymous
 Wie kann ich eine benutzerdefinierte Regel in Laravel bedingt validieren?

Post by Anonymous »

In meinem Controller habe ich eine Store-Methode, die die Anforderungsdaten validiert:

Code: Select all

$request->validate([
'title' => 'required',
'description' => 'required',
'date' => [
'required',
new DateFormatRule
],
'closed' => 'nullable',
'time_start' => 'required_if:closed,0',
'time_end' => [
'required_if:closed,0',
new TimeDurationRule($request->time_start)
],
]);

Code: Select all

closed
ist ein boolescher Wert. Wenn geschlossen falsch ist, sind die Felder time_start und time_end erforderlich. Dies scheint wie erwartet zu funktionieren.

Wenn ich jedoch eine Anfrage mit „closed“ als „true“ sende, bleibe ich in meiner benutzerdefinierten TimeDurationRule hängen:

Code: Select all

'time_end' => [
'required_if:closed,0',
new TimeDurationRule($request->time_start)
],
Wie kann ich neue TimeDurationRule($request->time_start) bedingt machen? Wenn beispielsweise geschlossen wahr ist, setze ich time_end manuell auf null, also time_start/

Code: Select all

time_end
benötigt keinen Wert (nicht erforderlich).

Wenn ich meine benutzerdefinierte Regel auskommentiere, funktioniert alles wie erwartet.

Vielen Dank für alle Vorschläge!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post