Языковой переключатель Laravel возвращает 404 только на одной странице

#laravel #http-status-code-404 #language-switching

#laravel #http-status-code-404 #переключение языка

Вопрос:

Итак, я внедрил переключение языка для своего приложения, на большинстве страниц это работает хорошо, однако есть одна страница, где переключение языка возвращает 404. Когда я переключаю язык, маршрут выглядит следующим образом, например, password / lang / en, за которым следует ошибка 404, но если я удаляю пароль со вкладки url, я перенаправляюсь обратно с переключаемым языком.

Мои переводы размещены в resources / lang /language_name

Маршрут для переключения языка:

 Route::get('lang/{locale}', 'LocalizationLocalizationController@index');
  

Маршрут, в котором при переключении выдается 404 (это из уровня аутентификации Laravel):

 $this->get('password/reset', 'AuthForgotPasswordController@showLinkRequestForm');
  

Контроллер:

  public function index($locale)
    {
        App::setLocale($locale);
        //storing the locale in session to get it back in the middleware
        session()->put('locale', $locale);
        return redirect()->back();
    }
  

Middleware/Localization.php:

 public function handle($request, Closure $next)
    {
        if (session()->has('locale')) {
            App::setLocale(session()->get('locale'));
        }
        return $next($request);
    }
  

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

ОТРЕДАКТИРУЙТЕ, добавлю ли я пароль к маршруту переключения:

 Route::get('password/lang/{locale}', 'LocalizationLocalizationController@index');
  

Тогда это работает, но, очевидно, что другие маршруты не будут, мой вопрос был бы в том, оставляю ли я это так, 2 отдельных маршрута:

 Route::get('/lang/{locale}', 'LocalizationLocalizationController@index');
Route::get('password/lang/{locale}', 'LocalizationLocalizationController@index');
  

или здесь есть вариант получше?

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

1. Опубликуйте некоторый код, по крайней мере, код маршрута, который принадлежит 404

2. Похоже, вы где-то вызвали неправильный маршрут, но мы не можем предоставить вам больше информации, пока вы не предоставите какой-либо код (маршруты, контроллеры …)

3. Да, извините за ошибку, отредактировал вопрос