In this short post, we will go over on How to create a resourceful controller in Laravel and also how to define a single line resource route in the web.php file.
Resource Controller
With Laravel, we get the option to create a CRUD controller, which has blank methods for all the default CRUD operations (Create, Read, Update, Delete) by just executing a single artisan command.
php artisan make:controller productController --resource
This artisan command will create a new controller with the name productController which has all the default CRUD methods.
If you are looking to create a resource controller when generating the Model file. Use this command.
php artisan make:model product -r
This artisan command will create a model Product.php, and a resource controller productController.php.
Use coupon 5balloons on this Cloudways Affiliate URL to get special discount.
Resource Route
Here is how you can define the resource route in the web.php file
Route::resource('products', 'ProductController');
This code line works like magic, it will automatically assign many action verbs to the resource controller. Since we generated a resource controller, this line will internally map route names to a different controller actions.
| Verb | URI | action (Controller method) | Route Name |
|---|---|---|---|
| GET | /products | index | products.index |
| GET | /products/create | create | products.create |
| POST | /products | store | products.store |
| GET | /products/{product} | show | products.show |
| GET | /products/{product}/edit | edit | tasks.edit |
| PUT/PATCH | /products/{product} | update | products.update |
| DELETE | /products/{product} | destroy | products.destroy |
