У меня есть две таблицы базы данных, Поездки и События. Я создал отношения между ними в Laravel. В одной поездке может быть много событий.
Я создал кнопку «Добавить событие», которая выводит пользователя в форму. Однако в минуту, чтобы передать внешний ключ 'trip_id' при добавлении события, я создал выпадающий список.
Я хочу удалить это и автоматически выбрать 'trip_id' в фоновом режиме, чтобы пользователю не нужно.
editTrip.blade. php
<a href="/trips/{id}/edit/AddEvent" class="btn btn-success"> Add Event</a>
<table class="table table-striped table-bordered table-hover">
<thead class="thead">
<tr class="warning">
<th>Category</th>
<th>Event Name</th>
<th>Start Date</th>
<th>End Date</th>
<th>Time</th>
<th>Address</th>
<th>Notes</th>
<th>Edit</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
@foreach($trip->events as $event)
<tr>
<td> </td>
<td>{{ $event->event_name }}</td>
<td>{{ $event->start_date }}</td>
<td>{{ $event->end_date }}</td>
<td> </td>
<td> </td>
<td> </td>
<th>
<a href="/events/{{$event->id}}/editEventForm" class="btn btn-primary" role="button" aria-pressed="true">Edit</a>
</th>
<th>
<form action="{{route('events.destroy',[$event->id])}}" method="POST">
@method('DELETE')
@csrf
<button class="btn btn-danger">Delete</button>
</form>
</th>
</tr>
@endforeach
</tbody>
</table>
<br />
<hr>
<div class="panel panel-primary">
<div class="panel-heading"></div>
<div class="panel-body">
<br>
{!! $calendar_details->calendar() !!}
{!! $calendar_details->script() !!}
</div>
</div>
addEvent.blade. php
{!! Form::open(array('route' => 'events.add', 'method'=>'POST', 'files'=>'true')) !!}
<div class="form-group">
@if (Session::has('sucess'))
<div class="alert alert-sucess">{{ Session::get('sucess') }}</div>
@elseif (Session::has('warning'))
<div class="alert alert-danger">{{ Session::get('warning') }}</div>
@endif
</div>
<div class="form-group">
<div class="form-group">
{!! Form::label('trip_id', 'Destination:') !!}
<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', null, ['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']) !!}
{!! Form :: close () !!}
EventController. php
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);
}
public function display()
{
$trips = Trip::all();
$user_id = Auth::id();
$user = User::find($user_id)->trips()->paginate(10);
return view('/addEvent')->with('trips', $user);
}
web. php
Route::get('/trips/{id}/edit/AddEvent', 'EventController@display')->name('events.display');
Route::post('/addEvents', 'EventController@addEvent')->name('events.add');
Route::get('/trips/{id}/edit', 'TripController@edit')->name('trips.edit');