Laravel как решить ошибку обращение к не существующей таблице?

Не могу понять в чем проблема. Сегодня изначально создал модель с миграцией и назвал ее так CategoryBooking После создал ресурсный контроллер BookingCategoryController

написал код по созданию категории в методе store стал тестировать и получил ошибку, что идет обращение к не существующей таблице SQLSTATE[42S02]: Base table or view not found: 1146 Table 'category_bookins' doesn't exist

в ошибке заметил что, с названия таблицы почему то удалена буква "g" стал проверять название модели, там указано все корректно и сама таблица category_bookings в базе создана.

Решить вопрос не удалось, да и как назвал модель не понравилось, решил откатить миграции и удалить модель.

Создал новую модель с названием BookingCategory + миграция.
Снова стал тестировать и опять возникает данная ошибка, что идет попытка обращения к таблице category_bookins

Ниже я приведу исходный код, но перед этим хочу написать что я пробовал делать и ошибка эта остается.

Пробовал следующее:
1. Сделал полный откат до всех изменений которые вносил сегодня. Далее создал модели, миграции, контроллер шаблоны просто скопировал заново. Ошибка сохраняется

2. Добавил одну категорию в базу и сделал методы index, edit, update,
Результат:
index - вывел категорию
edit - подтянул данные и расставил в инпуты
update - не сохраняет данные, снова эта ошибка

3. В методах store, update закомментировал строки сохранения данных
Результат:
store - все равно продолжает отображать ошибку
update - редиректит на метод index, как и ожидалось Ок

4. В моделе явно указал какой таблице надо обращаться
Результат: все равно ошибка

Миграция
public function up()
{
    Schema::create('booking_categories', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->string('link');
        $table->integer('published')->default(0);
        $table->timestamps();
    });
}


Модель BookingCategory
class BookingCategory extends Model
{
    use HasFactory;

    protected $table = 'booking_categories';

    protected $fillable = [
        'title',
        'link',
        'published',
    ];

    public function booking()
    {
        return $this->belongsTo(Booking::class);
    }
}


BookingCategoryConroller
class BookingCategoryController extends Controller
{
    public function index()
    {
//        $categories = BookingCategory::all();

//        dd($categories);

        return view('admin.booking.category.index', [
            'categories' => BookingCategory::all(),
        ]);
    }

    public function create()
    {
        return view('admin.booking.category.create', []);
    }

    public function store(FormCategoryCreateRequest $request)
    {
//        BookingCategory::create($request->all());

        return redirect()->route('admin.category.index');
    }

    public function show($id)
    {
        //
    }

    public function edit($id)
    {
        $category = BookingCategory::findOrFail($id);

        return view('admin.booking.category.create', [
            'category' => $category,
        ]);
    }

    public function update(FormCategoryCreateRequest $request, $id)
    {
//        $category = BookingCategory::findOrFail($id);
//        $category->update();

        return redirect(route('category.index'));
    }

    public function destroy($id)
    {
        //
    }
}


Форма добавления/изменения категории
<form method="POST" action="{{ isset($category) ? route('category.update', $category->id) : route('category.store') }}">
    @csrf
    @if(isset($category))
        @method('PUT')
    @endif
    <div class="form-group">
        <label for="title">Название категории</label>
        <input type="text" name="title" id="title" value="{{ $category->title ?? '' }}" class="form-control @error('title') border-danger @enderror" id="title" placeholder="Название категории">
        @error('title')
        <p class="text-danger">{{ $message }}</p>
        @enderror
    </div>
    <div class="form-group">
        <label for="link">Символьный код</label>
        <input type="text" name="link" id="link" value="{{ $category->link ?? '' }}" class="form-control @error('link') border-danger @enderror" id="title" placeholder="Символьный код">
        @error('link')
        <p class="text-danger">{{ $message }}</p>
        @enderror
    </div>

    <div class="form-group">
        <input type="hidden" name="activity" value="0" />
        <input type="checkbox" name="published" value="1" id="published" data-bootstrap-switch data-off-color="danger" data-on-color="success" @if(isset($category)) {{ old('published', $category->published) !=1?: 'checked' }} @endif>
        &nbsp;&nbsp;&nbsp;<label for="published">Опубликовать</label>
    </div>

    <div class="card-footer">
        <button type="submit" class="btn btn-primary">{{ isset($category) ? "Изменить" : 'Добавить' }}</button>
    </div>
</form>


route
Route::middleware(['role:admin|manager'])->prefix('admin_panel')->group(function () {
    Route::get('/', [App\Http\Controllers\Admin\DashboardController::class, 'index'])->name('dashboard');

    Route::resource('/news', App\Http\Controllers\Admin\NewsController::class);
    Route::resource('/booking/category', App\Http\Controllers\Admin\BookingCategoryController::class);
});
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
dima9595
@dima9595
Junior PHP
Проверьте свой FormCategoryCreateRequest. Вероятней всего там ошибка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы