我在 laravel 中有一个应用程序,现在我需要将它用多种语言编写。
在用户表中,我添加了一列lang,告诉我每个用户的默认语言。所以登录后我创建一个session变量来存储这个值:
protected function authenticated(Request $request, $user)
{
session(['locale' => $user->lang]);
}
接下来我创建并注册一个middleware来为每条路线设置语言:
public function handle($request, Closure $next)
{
if(session()->has('locale'))
{
app()->setLocale(session('locale'));
}
else
{
app()->setLocale(config('app.locale'));
}
return $next($request);
}
如果我回显会话,它会根据登录的用户为我提供正确的语言。
但这不起作用,总是将默认语言设置在 laravel 配置文件中。
我该如何解决这个问题?
谢谢