Here's how you can do multiple methods on a single route:
Route::get('/route', 'RouteController@index');
Route::post('/route', 'RouteController@create');
Route::put('/route', 'RouteController@update');
/* Would be easier to use
* Route::put('/route/{route}', 'RouteController@update');
* Since Laravel gives you the Model of the primary key you've passed
* in to the route.
*/
Route::delete('/route', 'RouteController@destroy');
If you've written your own middleware, you can wrap the routes in a Route::group
and apply your middleware to those routes, or individual routes respectively.
Route::middleware(['myMiddleware'])->group(function () {
Route::get('/route', 'RouteController@index');
Route::post('/route', 'RouteController@create');
Route::put('/route', 'RouteController@update');
});
Or
Route::group(['middleware' => 'myMiddleware'], function() {
Route::get('/route', 'RouteController@index');
Route::post('/route', 'RouteController@create');
Route::put('/route', 'RouteController@update');
});
Whichever is easier for you to read.
https://laravel.com/docs/5.6/routing#route-groups