如何解决Laravel语言切换仅在一页上返回404
因此,我已经为我的应用程序实现了语言切换,在大多数页面上都可以正常工作,但是有一个页面的切换语言返回了404。当我切换语言时,路由如下所示: password / lang / en,后跟404错误,但是如果我从url选项卡中删除了密码,则会重定向回原来的语言,并且会切换语言。
我的翻译被放置在resources / lang / language_name
切换语言的路线:
Route::get('lang/{locale}','Localization\LocalizationController@index');
切换时抛出404的路由(来自Laravel的auth层):
$this->get('password/reset','Auth\ForgotPasswordController@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}','Localization\LocalizationController@index');
然后它可以工作,但是显然其他路线不会,我的问题是我是否要像这样保留两条单独的路线:
Route::get('/lang/{locale}','Localization\LocalizationController@index');
Route::get('password/lang/{locale}','Localization\LocalizationController@index');
还是这里有更好的选择?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。