У меня есть две таблицы - «Поездки» и «События». Одна поездка может иметь много событий. У меня есть форма, которая позволяет пользователям добавлять события в свою поездку. При выборе даты начала и окончания события я хочу разрешить пользователям выбирать только дату из поездки даты начала и даты окончания поездки.
Например, если поездка в Нью-Йорк была создана с 1 марта по 14 марта, пользователи должны иметь возможность добавлять события только между этими датами. Есть ли хороший способ сделать это?
Таблица поездок Таблица событий
addEvent.blade. php `
<div class="form-group">
<div class="form-group">
{!! Form::label('trip_id', 'Your Destinations:') !!}
<select class="form-control" name="trip_id">
@foreach($trips as $trip)
<option value='{{ $trip->id}}'>{{$trip->destination}}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<div class="form-group">
{!! Form::label('event_name', 'Add Event:') !!}
<div class="">
{!! Form::text('event_name', null, ['class' => 'form-control']) !!}
{!! $errors->first('event_name', '<p class="alert alert-danger">:message</p>') !!}
</div>
</div>
</div>
<div class="form-group">
<div class="form-group">
{!! Form::label('start_date', 'Start Date:') !!}
<div class="">
{!! Form::date('start_date', \Carbon\Carbon::now(), ['class' => 'form-control']) !!}
{!! $errors->first('start_date', '<p class="alert alert-danger">:message</p>') !!}
</div>
</div>
</div>
<div class="form-group">
<div class="form-group">
{!! Form::label('end_date', 'End Date:') !!}
<div class="">
{!! Form::date('end_date', null, ['class' => 'form-control']) !!}
{!! $errors->first('end_date', '<p class="alert alert-danger">:message</p>') !!}
</div>
</div>
</div>
<div class="form-group" <br/>
{!! Form::submit('Add Event', ['class' => 'btn btn-primary']) !!}
`
Контроллер событий
public function addEvent(Request $request)
{
$validator = Validator::make($request->all(),[
'event_name' => 'required',
'start_date' => 'required',
'end_date' => 'required',
'trip_id'=> 'required',
]);
if($validator->fails()) {
\Session::flash('warning', 'Please enter the valid details');
return redirect('/events')->with('input', Input::all());
}
$events = new Events;
$trips = Trip::all();
$events->event_name = $request['event_name'];
$events->start_date = $request['start_date'];
$events->end_date = $request['end_date'];
$events->trip_id = $request['trip_id'];
$events->save();
return redirect('trips')->with('success', 'The new event has been added to your trip')->with('trips', $trips);
}
trip.blade. php
<div class="form-group">
<input type="text" name="destination" class="form-control" value="{{$trip->destination}}" placeholder="Destination" />
</div>
<h7>Trip Start Date: </h7>
<div class="form-group">
<input type="date" name="startdate" class="form-control" value="{{$trip->startdate}}" placeholder="Start Date" />
</div>
<h7>Trip End Date: </h7>
<div class="form-group">
<input type="date" name="enddate" class="form-control" value="{{$trip->enddate}}" placeholder="End Date" />
</div>
<div>
контроллер отключения
public function submit(Request $request){
$this->validate($request, [
'name' => 'required',
'email' => 'required',
'destination' => 'required',
'startdate' => 'required',
'enddate' => 'required'
]);
//Create new trips
$trip = new Trip;
$trip->name = $request->input('name');
$trip->email = $request->input('email');
$trip->destination = $request->input('destination');
$trip->startdate = $request->input('startdate');
$trip->enddate = $request->input('enddate');
$trip->user_id = auth()->user()->id;
//save trips
$trip->save();
//Rredirect
return redirect('/home')->with('status', 'Trip Created Sucessfully');
}