In this lesson, we will finalize our resource Controller with two missing methods: update and delete the category.
First, the update method. The method for the Route is PUT
, and in the Controller, the method is usually update
.
routes/api.php:
Route::get('/user', function (Request $request) { return $request->user();})->middleware('auth:sanctum'); Route::get('categories', [\App\Http\Controllers\Api\CategoryController::class, 'index']);Route::get('categories/{category}', [\App\Http\Controllers\Api\CategoryController::class, 'show']);Route::post('categories', [\App\Http\Controllers\Api\CategoryController::class, 'store']);Route::put('categories/{category}', [\App\Http\Controllers\Api\CategoryController::class, 'update']); Route::get('products', [\App\Http\Controllers\Api\ProductController::class, 'index']);
app/Http/Controllers/Api/CategoryController.php:
class CategoryController extends Controller{ // ... public function update(Category $category, StoreCategoryRequest $request) { $category->update($request->all()); return new CategoryResource($category); }}
In the Controller, we use a Route Model Binding to find a record and the same Form Request for validation. In the update
method, we update the category and return the updated category.
In the client, we can send...