问题描述
因此,我已经为我的应用程序实现了语言切换,在大多数页面上都可以正常工作,但是有一个页面的切换语言返回了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 (将#修改为@)