2016-08-10 2 views
0

Ich habe zwei separate Eingänge: date und time. Ich möchte diese beiden Eingaben mit der after Regel validieren. Wie würde ich das tun? Hier sind die Regeln so weit:Überprüfen Sie zwei Eingänge als einen

$now = (new DateTime())->format('Y-m-d H:i'); 

$rules = [ 
    'date' => [ 
     'required', 
     'date', 
     "after:$now", 
    ], 
    'time' => [ 
     'required', 
     'regex:/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/', 
    ], 
]; 

Derzeit Validierung ignoriert Zeit und das Datum wird passieren, wenn die Zeit, um etwas ungültig gesetzt.

Antwort

1

Wie wäre es etwa so:

class MyRequest extends Request 
{ 
    public function rules() 
    { 
     $this->normalize(); 

     return ['date_time' => 'required|date|after:now']; 
    } 

    public function normalize() 
    { 
     $this->merge([ 
      'date_time' => $this->input('date') . ' ' . $this->input('time') 
     ]); 
    } 
} 

Die Hauptsache ist hier zu normalisieren rufen einen neuen date_time Schlüsselwert auf die Anforderung zu bauen und addieren und dann mit bestätigen, was auch immer Regeln, die Sie bevorzugen.

Verwandte Themen