Я пытаюсь добавить в базу данных строку для объектов типа «Событие». Всякий раз, когда я нажимаю кнопку создания в форме HTML, я получаю сообщение об ошибке «Неопределенный индекс: местоположение».
Это моя функция сохранения:
public function save(CreateEvent $request)
{
$validated = $request->validated();
$event = new Event();
$event->event_name = $validated['name'];
$event->event_description = $validated['description'];
$event->event_location_id = $validated['location'];
if ($validated['website'] != null) {
$event->event_website = $validated['website'];
}
if ($validated['facebook'] != null) {
$event->event_facebook = $validated['facebook'];
}
if ($validated['twitter'] != null) {
$event->event_twitter = $validated['twitter'];
}
if ($validated['instagram'] != null) {
$event->event_instagram = $validated['instagram'];
}
$starttime = strtotime($validated['starttime']);
$event->event_start_time = date('H:i', $starttime);
$event->event_duration = $validated['duration'];
$event->event_day = $validated['day'];
if ($validated['image'] != null) {
$imageName = time().'.'.request()->file('image')->getClientOriginalExtension();
$event->event_image = $imageName;
request()->image->move(public_path('images'), $imageName);
}
$event->save();
return redirect()->route('event.show', ['event_id' => $event->event_id]);
}
Это моя форма запроса:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CreateEvent extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'required',
'description' => 'required',
'location' => 'required',
'starttime' => 'required',
'duration' => 'required',
'day' => 'required',
'website' => '',
'twitter' => '',
'facebook' => '',
'instagram' => '',
'image' => '',
];
}
public function messages() {
return ["Invalid input"];
}
}
Вот соответствующая часть HTML:
<div class="input-wrapper">
<label for="location">Location *</label>
<select id="location">
@foreach ($event_locations as $location)
<option value="{{$location->location_id}}">{{$location->location_name}}</option>
@endforeach
</select>
</div>
Когда я нажимаю «Создать», я получаю следующую ошибку:
ErrorException
Undefined index: location
Это строка, в которой ошибка: $event->event_location_id = $validated['location'];
Помощь приветствуется