У меня проблемы с разрешением пользователям переопределять маршруты моего пакета. Поскольку пакет обнаружен автоматически, я не могу сделать обычное исправление для этого.
Желаемый результат, если в файле 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, однако я уверен, что должен быть более быстрый способ достичь всего этого.