我正在尝试使用“ site_lang”会话密钥更改网站语言。这是控制器
public function __construct()
{
if( !session()->has( 'site_lang' ) ) { session(['site_lang' => 'en']); }
$this->lang = session()->get('site_lang');
app()->setLocale($this->lang);
用户单击另一个语言链接来更改网站的语言,因此他将重定向到HomeController中的该功能,该功能扩展了 Controller
session()->forget('site_lang');
session(['site_lang' => $lang]);
//echo session()->get('site_lang').'<br>'; //prints fr
$this->lang = $lang;
//echo $this->lang; //prints fr
app()->setLocale($lang);
//echo app()->getLocale(); //prints fr
return redirect("/");
删除了一些验证以使其简短
因此,用户单击“法语”并重定向到上一个函数“ HomeController @ change_lang”,并且所有echo语句都显示 fr ,但是当用户重定向到主页时,该值将得到通过此行再次分配给 zh_CN
if( !session()->has( 'site_lang' ) ) { session(['site_lang' => 'en']); }
为什么会发生这种情况以及如何解决?
答案 0 :(得分:0)