When you create a controller, Laravel does provide you with the route resource which provides out of the box CRUD operation routes. You can check these named routes by the following command:
php artisan route:list
In this article we will use photos controller as a example.
By default, following is the list of the ] controller CRUD operation routes:
| Verb | URI | Action | Route Name |
|---|---|---|---|
| GET | /photos | index | photos.index |
| GET | /photos/create | index | photos.index |
| POST | /photos | index | photos.index |
| GET | /photos/{photo} | index | photos.index |
| GET | /photos/{photo}/edit | index | photos.index |
| PUT/PATCH | /photos | index | photos.index |
| DELETE | /photos | index | photos.index |
Sometimes, we may want to use only few of the routes from the CRUD operation and let's say we want to use only index, create, store, edit and update, we can customise it like the following:
Route::resource('photos', 'PhotoController')->only('index', 'create', 'store', 'edit', 'update');
We can also specify the as option to define a prefix for every route name.
Route::resource('photos', 'PhotoController', [
'as' => 'foo'
]);
Similarly, you can also provide a custom name for each controller methods like the following:
Route::resource('photos', 'PhotoController', [
'names' => [
'index' => 'foo',
'store' => 'foo.new',
// etc...
]
]);
Top comments (0)