Я думаю, что вы добавили что-то подобное в свой класс / файл помощника.
Получить файлы маршрутов из вложенных каталогов:
function get_route_files($path, $routes) {
$excludes = ['.', '..', 'channels.php', 'console.php'];
foreach(scandir($path) as $routeFile) {
if (in_array($routeFile, $excludes)) {
continue;
} else {
$filePath = $path . '/' . $routeFile;
if (is_dir($filePath)) {
$routes = array_merge($routes, get_route_files($filePath, $routes));
} else {
$alias = get_route_file_alias($filePath);
$routes[] = ['path' => str_replace('../routes/', '', $filePath), 'alias' => $alias];
}
}
}
return $routes;
}
Получить псевдонимы для ваших маршрутов:
function get_route_file_alias($path) {
$alias = '';
foreach($keys = explode('/', $path) as $i => $key) {
if (!in_array($key, ['..', 'routes'])) {
if ($i <= count($keys) - 2) {
$alias .= $key . '.';
}
}
}
return $alias;
}
Затем сопоставьте следующие маршруты с RouteServiceProvider
:
protected function mapApiRoutes() {
$routes = get_route_files('../routes', []);
foreach($routes as $route) {
Route::prefix('api')
// ->middleware($middleware) -- if there's any
->as($route['alias'])
->namespace($this->namespace . "\\API")
->group($route['path']);
}
}