1

I have a web application with Laravel-5.8. In the project, I have four (4) different dates.

appraisal_start, appraisal_end, submission_start, submission_end.

Already, I have validated appraisal_start and appraisal_end, then submission_start and submission_end as shown in the rules of my code below:

public function rules()
{
return [
    'appraisal_start' => 'required',
    'appraisal_end' => 'required|after_or_equal:appraisal_start',
    'submission_start' => 'required',
    'submission_end' => 'required|after_or_equal:submission_start',
];
}

public function create()
{
  abort_unless(\Gate::allows('appraisal_identity_create'), 403);
  return view('appraisal.appraisal_identities.create');
}

public function store(StoreAppraisalIdentityRequest $request)
{
  abort_unless(\Gate::allows('appraisal_identity_create'), 403);

  $appraisalStart = Carbon::parse($request->appraisal_start);
  $appraisalEnd = Carbon::parse($request->appraisal_end);
  $submissionStart = Carbon::parse($request->submission_start);
  $submissionEnd = Carbon::parse($request->submission_end);

  $identity = AppraisalIdentity::create([
    'appraisal_start'                => $appraisalStart,
    'appraisal_end'                  => $appraisalEnd,
    'submission_start'               => $submissionStart,
    'submission_end'                 => $submissionEnd,
]);
  Session::flash('success', 'Appraisal Initialization is created successfully');
  return redirect()->route('appraisal.appraisal_identities.index');
}

view

    <div class="card-body">
   <form  action="{{route('appraisal.appraisal_identities.store')}}" method="post" class="form-horizontal" enctype="multipart/form-data">
       {{csrf_field()}}
                    <div class="form-body">
                        <div class="row">
            <div class="col-md-6">
                                <div class="form-group row">
                                    <label class="control-label text-right col-md-3">Appraisal Start Date<span style="color:red;">*</span></label>
                <div class="col-md-9">
                                        <input type="date" class="form-control" placeholder="dd/mm/yyyy" name="appraisal_start" value="{{old('appraisal_start')}}"  min="{{Carbon\Carbon::now()->format('Y-m-d')}}">
                                    </div>
                                </div>
            </div>
                            
            <div class="col-md-6">
                                <div class="form-group row">
                                    <label class="control-label text-right col-md-3">Appraisal End Date<span style="color:red;">*</span></label>
                <div class="col-md-9">
                                        <input type="date" class="form-control" placeholder="dd/mm/yyyy" name="appraisal_end" value="{{old('appraisal_end')}}"  min="{{Carbon\Carbon::now()->format('Y-m-d')}}">
                                    </div>
                                </div>
            </div>
                            
            <div class="col-md-6">
                                <div class="form-group row">
                                    <label class="control-label text-right col-md-3">Submission Start Date<span style="color:red;">*</span></label>
                <div class="col-md-9">
                                        <input type="date" class="form-control" placeholder="dd/mm/yyyy" name="submission_start" value="{{old('submission_start')}}"  min="{{Carbon\Carbon::now()->format('Y-m-d')}}">
                                    </div>
                                </div>
            </div>
                            
            <div class="col-md-6">
                                <div class="form-group row">
                                    <label class="control-label text-right col-md-3">Submission End Date<span style="color:red;">*</span></label>
                <div class="col-md-9">
                                        <input type="date" class="form-control" placeholder="dd/mm/yyyy" name="submission_end" value="{{old('submission_end')}}"  min="{{Carbon\Carbon::now()->format('Y-m-d')}}">
                                    </div>
                                </div>
            </div>

                        </div>
                    </div>
      
        <div>
            &nbsp;&nbsp;&nbsp;<button type="submit" class="btn btn-primary">{{ trans('global.save') }}</button>
            <button type="button" onclick="window.location.href='{{route('appraisal.appraisal_identities.index')}}'" class="btn btn-default">Cancel</button>
        </div>
    </form>
</div>


<script type="text/javascript">
    $(document).ready(function() {
        $(function () {
            $('#appraisal_start').datetimepicker({
                format: "YYYY-MM-DD"
            });
            $('#appraisal_end').datetimepicker({
                format: "YYYY-MM-DD"
            });
            $('#submission_start').datetimepicker({
                format: "YYYY-MM-DD"
            });
            $('#submission_end').datetimepicker({
                format: "YYYY-MM-DD"
            });
        });
    });
</script>

The issue now is how do I validate that submission_start and submission_end must be withing the range of appraisal_start and appraisal_end.

Thanks

1 Answer 1

1

You can do something like this in rules

public function rules()
{
  return [
    'appraisal_start' => 'required',

    'appraisal_end' => 'required|after_or_equal:appraisal_start',

    'submission_start' => 'required | after_or_equal:appraisal_start | 
     before_or_equal:appraisal_end',

    'submission_end' => 'required|after_or_equal:submission_start | 
     before_or_equal: appraisal_end',
  ];
}

Let me know if this answer help you or not Good Luck

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.