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)