我使用下面的简单代码来改变我的laravel应用程序中的语言,但它不会改变任何东西。语言仍然是默认的'en'
- 路线**
Route::get('lang/{local}','LanguageController@setlanguage');
- 主计长**
public function setlanguage(Request $request)
{
\App::setLocale($request->local);
return back()->withInput();
}
- 查看**
@if(App::getLocale() == 'en')
<a href="{{url('/lang/ar')}}">العربية</a>
@elseif(App::getLocale() == 'ar')
<a href="{{url('/lang/en')}}">English</a>
@endif
我错过什么了吗?
3条答案
按热度按时间zlhcx6iw1#
将控制器函数更改为
1l5u6lss2#
当您使用
\App::setLocale()
时,它将更改此特定请求的语言,在您返回back()
后,请求完成,语言返回默认值。如果您想保存这个更改,请保存会话中的语言,如果会话中有
language
,则添加一个中间件来更改它。例如:
控制器:
中间件:
dxxyhpgq3#
在我的例子中,它起作用了:应用程序::setLocale($请求-〉本地);
而不是这个:\应用程序::设置区域设置($local);