Невозможно редактировать элемент в CRUD с помощью Laravel 8
Я делаю CRUD в Laravel 8, я не могу создать категорию редактирования в CRUD, даже если я добавил имя маршрута с идентификатором категории в файле index.blade.php, я получил эту ошибку, я проверял файл много раз, прежде чем размещать здесь, но я все же сделал не ловить ошибку ... пожалуйста, помогите мне
введите описание изображения здесь
edit.blade.php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Edit Category</div>
<div class="card-body">
@if (count($errors) > 0)
<div class="alert alert-danger">
@foreach ($errors->all() as $error)
<ul>
<li>{{ $error }}</li>
</ul>
@endforeach
</div>
@endif
<form action="{{ route('category.update', ['id' => $category->id]) }}" method="post">
@csrf
{{-- @method('PUT') --}}
<div class="form-group">
<label for="name">Category Name</label>
<input type="text" class="form-control" name="name" value="{{ $category->name }}">
</div>
<button type="submit" class="btn btn-primary">Update</button>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
CategoryController
public function edit(Category $category)
{
return view('category.edit')->with(['category' => $category]);
}
public function update(Request $request, Category $category)
{
$request->validate([
'name' => 'required|min:3|max:255',
]);
// $category->name = $request['name'];
// $category->update();
$category->update($request->all());
return redirect()->route('category.index')->with('category_updated', 'Category has been updated');
}
web.php
Route::prefix('user')->group(function () {
Route::get('/categories', [CategoryController::class, 'index'])->name('category.index');
Route::get('/category/create', [CategoryController::class, 'create'])->name('category.create');
Route::post('/category', [CategoryController::class, 'store'])->name('category.store');
Route::get('/category/{id}/edit', [CategoryController::class, 'edit'])->name('category.edit');
Route::post('/category/{id}', [CategoryController::class, 'update'])->name('category.update');
Route::delete('/category/{id}', [CategoryController::class, 'destroy'])->name('category.delete');
});
1 ответ
Вы можете изменить
public function update(Request $request, Category $category)
к
public function update(Request $request, $id)
а результат скажите?
попробуйте, если это сработает, мы его улучшим:
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required|min:3|max:255',
]);
$category = Category::find($id);
// $category->name = $request['name'];
// $category->update();
$category->update($request->all());
return redirect()->route('category.index')->with('category_updated', 'Category has been updated');
}