Splitting Laravel routes into seperate files

How to organize Laravel routes into separate files for better organization and readability.

This isn’t something that would be done for a small project, rather a large one whereby the web.php or api.php file is getting congested, hard to read or to locate code you need.

Split laravel routes into seperate files

I have found the most readable way is to do a prefix first in the base routes web.php file.

This example will be creating a separate routes file for Users

In the base routes web.php file:

Route::prefix('/users')->group(__DIR__.'/web/userRoutes.php');

Now in routes/ create a folder called web then create userRoutes.php file and put all your routes for the Users controller

Route::get('account/details', 'UserControllerController@showDetails');
Route::post('account/update', 'UserControllerController@accountUpdate');
//ect....

You then follow this process for each of the controllers e.g Products, Orders, Invoices etc.

The end result will be that your web.php file will only have prefixes and will be much smaller.