Laravel: route: cache не использует файлы в подкаталогах - PullRequest
0 голосов
/ 10 июля 2019

В моем проекте много маршрутов, и я не храню все веб-маршруты в одном файле, я использую подкаталоги.Например, у меня есть стандартные маршруты / web.php, когда я писал основные маршруты и в этом каталоге я создал подкаталог маршрутов / групп.Там у меня есть несколько файлов, разделенных на несколько категорий.Работает нормально, когда я не использую кеш маршрутов.Но если я попытаюсь создать кеш с помощью php artisan route:cache, он создаст кеш только для стандартных файлов, таких как: routs / web.php, routs / channel.php и т. Д. Даже если я добавлю require_once в web.php, это не сработает!В чем проблема с кешем маршрутов?

Версия Laravel: 5.6

1 Ответ

0 голосов
/ 10 июля 2019

Правильный способ определения маршрутов в подкаталоге - сделать это в файле RouteServiceProvider.php.php artisan route:cache примет во внимание эти маршруты.

В вашем случае добавьте следующий скрипт в mapWebRoutes() Функция должна работать:

Route::middleware('web')
    ->namespace($this->namespace)
    ->group(base_path('routes/groups/{your-filename}.php'));

Вы также можете назначить отдельный префикс, пространство имен, назначитьпромежуточное ПО для каждого файла маршрутов.Например:

Route::middleware('web')
    ->namespace($this->namespace)
    ->prefix('groups')
    ->group(base_path('routes/groups/{your-filename}.php'));


ПРИМЕЧАНИЕ: route:cache не будет работать с маршрутами на основе замыкания.Поэтому вы должны избегать этого, чтобы использовать route:cache.

...