2016-04-03 13 views
2

Dies ist meine Anfrage Klasse.Validierung Enddatum mit Startdatum in Laravel 5 mit Anfrage Klasse

public function rules() 
{ 
    $input = Input::all(); 

    return [ 
     'title' => 'required|unique:event_cals,title', 
     'eventDate' => 'required|date|after:yesterday', 
     'endDate' => 'date|before:event_cals,' . date('Y-m-d', strtotime($input['eventDate'] . ' +1 day')), 
     'venue' => 'required', 
     'time' => 'required', 
     'type' => 'required', 
     'photo' => 'mimes:jpeg,bmp,png,jpg|max:1000' 
    ]; 
} 

public function messages(){ 
    return [ 
     'title.required' => 'Title is required.', 
     'title.unique' => 'Title is already there.', 
     'eventDate.after' => 'Event Date is passed.', 
     'eventDate.required' => 'Event Date is required.', 
     'venue.required' => 'Venue is required.', 
     'time.required' => 'Time is required.', 
     'type.required' => 'Type is required.', 
     'endDate.date' => 'Due Date should be after starting date', 

    ]; 
} 

Dort möchte ich überprüfen, ob endDate nach dem eventDate ist. Es funktioniert ordnungsgemäß, außer wenn endDate ähnlich wie eventDate ist. Aber ich möchte sicherstellen, dass ein endDate hinzugefügt werden kann, das auch mit eventDate vergleichbar ist. Für ein Beispiel, wenn das EventDate am 03.04.2016 ist, kann ein endDate als 03/04/2016 oder ein zukünftiges Datum hinzugefügt werden. Aber von oben Regel 03/04/2016 ist ungültig als Enddatum. Gibt es ein Stichwort für vorher oder gleich? Kann mir bitte jemand helfen, dieses Durcheinander herauszufinden?

Antwort

0

Angenommen, Sie die Eingabe erhalten, bevor Sie die $rules etablieren, können Sie versuchen, einen Tag eventDate vor der Validierung und fügte hinzu:

$rules = [ 
    'eventDate' => 'required|date|after:yesterday', 
    'endDate' => 'date|before:event_cals,' . date('Y-m-d', strtotime($input['eventDate'] . ' +1 day')), 
]; 

Oder Sie können Laravel erweitern, um eine neue Gültigkeitsregel zu erstellen, die dies für Sie Griffe (und erleichtert die Wiederverwendung in anderen Controllern).

+0

$ Eingabe macht einen Fehler als undefiniert. Wie behebt man das? –

+0

Fix mit '' '$ input = Input :: all();' ''. Sie sollten '' '$ input''' ersetzen, wo auch immer Sie die Eingabewerte speichern. –

+0

Ich habe die obige Antwort aktualisiert. Für alle Werte von endDate wird ein Fehler angezeigt. Wo liege ich falsch? –

Verwandte Themen