переопределить laravel 5.7 автоматически обнаруженные маршруты пакетов - PullRequest
0 голосов
/ 12 сентября 2018

У меня проблемы с разрешением пользователям переопределять маршруты моего пакета. Поскольку пакет обнаружен автоматически, я не могу сделать обычное исправление для этого.

Желаемый результат, если в файле rout-> web.php пользователь определяет маршрут «/ home», а в файле моем пакете rout.php, который также есть у меня «/ home», используется версия web.php.

Дайте мне знать, какой другой код мне нужен для решения этой проблемы!

Поставщик услуг пакета:

no longer relevant

Решение:

Чтобы решить эту проблему так, как я намеревался, (не нарушая автообнаружение), вам нужно будет проверить другие маршруты внутри маршрута, которые обычно переопределяют пользовательские маршруты. Например, эта функция, имеющая маршрут '/ {slug}', обычно нарушает маршруты пользователей web.php, например '/userroute'.

Мой обходной путь выглядит следующим образом.

public function page($slug){
    $route = $slug;
    $routes = Route::getRoutes();
    foreach($routes as $r){
      if($r->uri() == $route){
        $name = $r->getActionName();
        if(isset($name)){
          return \App::call('\\'.$name);
        }
      }
    }
    //add route code after

Нам нужно вызвать маршрут напрямую, чтобы не допустить бесконечного перенаправления. Это хорошо работает для меня, потому что я могу контролировать, какие маршруты пакетов пользователь может переопределить в своем файле web.php, однако я уверен, что должен быть более быстрый способ достичь всего этого.

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете добавить узел dont-Discover в свой файл composer.json, чтобы исключить пакеты из автоматического обнаружения.

"extra": {
  "laravel": {
    "providers": [
      "WindfallInc\\Woodpecker\\WoodpeckerServiceProvider"
    ],
    "dont-discover": [
        "windfallinc/woodpecker"
    ]
  }
}

Тейлор говорил об этой функции на Medium, когда он добавил autoоткрытие на Medium.https://medium.com/@taylorotwell/package-auto-discovery-in-laravel-5-5-ea9e3ab20518

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...