2016-09-21 2 views
0

so habe ich diese Funktion, wo der Benutzer das Startdatum und Enddatum eines bestimmten Ereignisses eingeben müssen. Was ich also tat, war, dass ich einen Datums - Picker zu meiner Ansicht hinzufügte und in meinem Controller das einzige, was ich tun kann, Enddaten nach dem Startdatum zu erlauben. Aber ich sollte auch das gleiche Start - und Enddatum angeben können, zum Beispiel das Benutzer wählte heute das Startdatum, ich sollte in der Lage sein, das Enddatum auch heute zu erlauben. im Grunde können die Enddaten am und nach dem Startdatum sein. Hier sind meine Validierungscodes in meinem Controller.erlauben gleichen Start-und Enddatum in Laravel 4.2 Validierung

$rules = array(
     'eventName' => 'required', 
     'users'  => 'required', 
     'evStart'  => 'required', 
     'evEnd'  => 'required|after:evStart', 
    ); 

und hier ist meine Codes für die Ansicht

<div class="input-field col s10 offset-s1" style="margin-top:40px;"> 
    {{ Form::label('date', 'Event Start *') }} 
    {{ Form::input('date', 'evStart', Input::old('evStart'), ['class'=>'datepicker', 'placeholder' => 'Date']) }} 
</div> 

<div class="input-field col s10 offset-s1"> 
    {{ Form::label('date', 'Event End *') }} 
    {{ Form::input('date', 'evEnd', Input::old('evEnd'), ['class'=>'datepicker', 'placeholder' => 'Date']) }} 
</div> 

irgendwelche Ideen, wie ich meine Codes verbessern? Vielen Dank im Voraus!

+0

Verwenden Sie $ ("# startdate"). Datepicker ({}); in js – Borna

+0

hi so habe ich gerade die 'datepicker' Klasse zu meinem' Form :: input' hinzugefügt – BourneShady

+0

siehe ich eine Antwort hinzufügen ... überprüfen, ob es funktioniert – Borna

Antwort

1

Machen Sie Validierungsregeln besitzen, für die Daten:

Validator::extend('after_equal', function($attribute, $value, $parameters, $validator) 
{ 
    return strtotime($validator->getData()['evStart']) <= strtotime($value); 
}); 

Für Startdatum:

Validator::extend('before_equal', function($attribute, $value, $parameters, $validator) 
{ 
    return strtotime($validator->getData()['evEnd']) >= strtotime($value); 
}); 

Setzen Sie diesen Code für, wo Sie wollen. Verwenden Sie Validator :: extendImplicit, wenn Sie leere Felder validieren möchten.

1
<script type="text/javascript"> 
    $(function() { 


    //----------date format----------------- 

    $("#startdate").datepicker({ 
      dateFormat: "mm/dd/yy", 

      onSelect: function (date) { 
       var date2 = $('#startdate').datepicker('getDate'); 
       date2.setDate(date2.getDate()); 

       $('#enddate').datepicker('option', 'minDate', date2); 
      } 
     }); 
     $('#enddate').datepicker({ 
      dateFormat: "mm/dd/yy", 
      onClose: function() { 
       var dt1 = $('#startdate').datepicker('getDate'); 
       console.log(dt1); 
       var dt2 = $('#enddate').datepicker('getDate'); 
       if (dt2 <= dt1) { 
        var minDate = $('#enddate').datepicker('option', 'minDate'); 
        $('#enddate').datepicker('setDate', minDate); 
       } 
      } 
     }); 
    }); 
</script> 
+0

danke werde dieses eine ausprobieren! :) – BourneShady

+0

startdatum, enddatum ist ihre eingabefeld id, vergessen sie nicht zu ändern – Borna