SQLSTATE [42S02]: Базовая таблица или представление не найдены: 1146 Таблица «fresh_start.event» не существует (SQL: выберите количество (*) как агрегат из `события`) - PullRequest
0 голосов
/ 11 апреля 2020

Я новичок 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 (заголовок, цель, дата) , место проведения, описание). Есть идеи, ребята? enter image description here

1 Ответ

0 голосов
/ 11 апреля 2020

Ошибка происходит, потому что в модели событий вы не упомянули имя таблицы и ее первичный ключ. Какие необходимы, если вы хотите использовать Eloquent ORM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...