Для настройки маршрутов с использованием директорий в папке router в Laravel, вам понадобится выполнить несколько шагов.
Шаг 1: Создайте папку router/ внутри директории app
mkdir app/router
Шаг 2: Создайте файл routes.php внутри папки router/
touch app/router/routes.php
Шаг 3: Откройте файл app/Providers/RouteServiceProvider.php и найдите метод map(), который регистрирует маршруты для вашего приложения.
public function map() { $this->mapApiRoutes(); $this->mapWebRoutes(); // Добавьте следующую строку: $this->mapRouterRoutes(); }
Шаг 4: Добавьте новый метод mapRouterRoutes() в класс RouteServiceProvider.
protected function mapRouterRoutes() { Route::prefix('router') ->middleware('web') ->namespace('AppHttpControllersRouter') ->group(base_path('app/router/routes.php')); }
Этот метод определяет префикс маршрута, промежуточное ПО, пространство имен контроллеров и путь к файлу routes.php. Мы указали 'AppHttpControllersRouter' как пространство имен контроллеров, чтобы все контроллеры, содержащиеся в папке app/Http/Controllers/Router, использовались для этих маршрутов.
Шаг 5: Создайте контроллер для маршрутов, использующихся в папке router/
php artisan make:controller Router/TestController
Шаг 6: Откройте файл routes.php в папке router/ и определите маршруты, используя созданный контроллер.
use AppHttpControllersRouterTestController; Route::get('test', [TestController::class, 'test']);
В этом примере мы определяем GET-маршрут '/test', который будет ссылаться на метод 'test' в контроллере RouterTestController.
Шаг 7 (дополнительно): Вы можете создать поддиректории в папке router/ и организовать свои маршруты внутри них. Например, вы можете создать папку router/admin и разместить административные маршруты внутри нее.
mkdir app/router/admin
В файле routes.php внутри папки router/admin/ вы можете определить маршруты, используя тот же подход, что и в основном файле routes.php.
use AppHttpControllersRouterAdminDashboardController; Route::get('dashboard', [DashboardController::class, 'index']);
Теперь у вас должны быть рабочие маршруты, определенные в папке router/. Вы можете получить доступ к ним по пути '/router/test' и '/router/admin/dashboard'.
Это лишь один из множества способов настройки маршрутов в Laravel, но использование директорий в папке router может помочь вам организовать вашу структуру приложения и разделить маршруты на группы в соответствии с их функциональностью.