Не могу понять в чем проблема. Сегодня изначально создал модель с миграцией и назвал ее так 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>
<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);
});