Я новичок ie в Laravel.
Поэтому у меня возникает эта проблема при попытке обновить форму, ошибка SQLSTATE [42S02]: базовая таблица или представление не найдены: 1146 таблица 'fresh_start.event' не существует (SQL: выберите количество (*) как агрегат из event
, где title
= eqwee).
Это странно, так как все остальные функции внутри EventController работает хорошо, за исключением функции обновления, которая возвращает указанный выше код ошибки.
Модель событий
class Event extends Model
{
//
protected $fillable = ['title', 'objective', 'date', 'venue', 'description', 'slug'];
public function getRouteKeyName()
{
return 'slug';
}
}
Контроллер событий
class EventController extends Controller
{
public function update(Request $request, Event $event)
{
//
$validated = $request->validate([
'title' => 'required|string|unique:event|min:5|max:100',
'objective' => 'required|string|min:5|max:2000',
'date' => 'required|string|min:5|max:2000',
'venue' => 'required|string|min:5|max:2000',
'description' => 'required|string|min:5|max:2000'
]);
// Create slug from title
$validated['slug'] = Str::slug($validated['title'], '-');
// Update Post with validated data
$event->update($validated);
// Redirect the user to the created post woth an updated notification
return redirect(route('events.edit', [$event->slug]))->with('notification', 'Event updated!');
}
Редактировать страницу Blade
<form method="post" action="{{ route('events.update', [$event->slug]) }}">
@csrf
@method('patch')
@include('partials.errors')
<div class="field">
<label class="label">Title</label>
<div class="control">
<input type="text" name="title" value="{{ $event->title }}" class="input" placeholder="Title" minlength="5" maxlength="100" required />
</div>
</div>
<div class="field">
<label class="label">Objective</label>
<div class="control">
<textarea name="content" class="textarea" placeholder="Content" minlength="5" maxlength="2000" required rows="10">{{ $event->objective }}</textarea>
</div>
</div>
<div class="field">
<label class="label">Date</label>
<div class="control">
<input type="text" name="title" value="{{ $event->date }}" class="input" placeholder="Title" minlength="5" maxlength="100" required />
</div>
</div>
<div class="field">
<label class="label">Venue</label>
<div class="control">
<input type="text" name="title" value="{{ $event->venue }}" class="input" placeholder="Title" minlength="5" maxlength="100" required />
</div>
</div>
<div class="field">
<label class="label">Description</label>
<div class="control">
<textarea name="content" class="textarea" placeholder="Content" minlength="5" maxlength="2000" required rows="10">{{ $event->description }}</textarea>
</div>
</div>
<div class="field">
<div class="control">
<button type="submit" class="button is-link is-outlined">Update</button>
</div>
</div>
</form>
Спасибо за ваше время!
ОБНОВЛЕНИЕ
Итак, я заметил, что когда я пытаюсь сбросить переменную $ request в контроллере. параметр запроса не тот, который я хотел. И я не уверен, как это изменить.
Из рисунка, который я прикрепил ниже, у него есть только 2 переменные (заголовок, содержимое), которые мне действительно нужны были 5 (заголовок, цель, дата) , место проведения, описание). Есть идеи, ребята?