If you have a set of routes related to a certain "section", you may separate them in a special routes/XXXXX.php
file, and just include it in routes/web.php
Example with routes/auth.php
in Laravel Breeze by Taylor Otwell himself:
Route::get('/', function () { return view('welcome');}); Route::get('/dashboard', function () { return view('dashboard');})->middleware(['auth'])->name('dashboard'); require __DIR__.'/auth.php';
Then, in routes/auth.php
:
use App\Http\Controllers\Auth\AuthenticatedSessionController;use App\Http\Controllers\Auth\RegisteredUserController;// ... more controllers use Illuminate\Support\Facades\Route; Route::get('/register', [RegisteredUserController::class, 'create']) ->middleware('guest') ->name('register'); Route::post('/register', [RegisteredUserController::class, 'store']) ->middleware('guest'); // ... A dozen more routes
But you should use this include()
only when that separate route file has the same settings for prefix/middlewares, otherwise it's better to group them in app/Providers/RouteServiceProvider
:
public function boot(){ $this->configureRateLimiting(); $this->routes(function () { Route::prefix('api') ->middleware('api') ->namespace($this->namespace) ->group(base_path('routes/api.php')); Route::middleware('web') ->namespace($this->namespace) ->group(base_path('routes/web.php')); // ... Your routes file listed next here });}