Добавление маршрута в Laravel в качестве последнего маршрута из модуля composer?

#laravel #laravel-routing

#laravel #laravel-маршрутизация

Вопрос:

Я создаю модуль для Laravel, и для удобства повторного использования я создаю его как отдельный модуль composer.

В этом модуле я должен определить универсальный маршрут, но я не хочу, чтобы он переопределял какой-либо из добавленных вручную маршрутов в проекте.

У кого-нибудь есть хорошая идея, как я могу добиться такого поведения?

Я регистрирую свой маршрут в методе ServiceProviders boot () следующим образом:

 public function boot()
    {
        $this->loadMigrationsFrom(__DIR__.'/migrations');
        $this->loadRoutesFrom(__DIR__.'/routes/routes.php');
    }
  

и routes.php также довольно просто:

 $regex = ".*";

Route::namespace('Asator\Runepost\Controllers')
    ->middleware(['web', DynamicContent::class])
    ->group(function($route) use ($regex) {
        $route->any('{any}', 'RunepostFrontController')->where('any', $regex);
    });
  

Возможно ли каким-либо образом добавить маршрут в качестве последнего маршрута после запуска добавленных вручную маршрутов?

Ответ №1:

Просто добавьте ServiceProvider вашего модуля после RouteServiceProvider приложения в config/app.php и убедитесь, что ваш универсальный маршрут является последним маршрутом маршрутов вашего модуля.

Комментарии:

1. о да, это могло бы сработать, спасибо 🙂 Я использую автоматическое обнаружение в composer.json, знаете ли вы способ расставить приоритеты при его обнаружении? В противном случае мне просто придется добавить его вручную, это было бы просто здорово, если это возможно 🙂

2. Смотрите сообщение Тейлора medium о том, как отключить автоматическое обнаружение для определенных пакетов: medium.com/@taylorotwell /…