Laravel:根据用户中的值设置区域设置 table

Laravel: SetLocale based on value in users table

版本:

描述:

我在 users table 中存储了一个语言环境变量。现在我想根据用户的语言环境变量更改应用程序的语言(当用户登录时)。

重现步骤:

我创建了一个新的 middleware 文件

public function handle($request, Closure $next)
{
    App::setLocale(Session::has('lang') ? Session::get('lang') : Config::get('app.locale'));

    return $next($request);
}

并在 Kernel.php

中调用了这个文件

在我的 LoginController 我有:

protected function authenticated(Request $request, $user)
{
    Session::put('lang', $user->lang);    
}

但这不起作用。没有错误,没有不同的语言。任何人都可以帮助我吗?

对我来说,我用这个对我来说很好用。

Session::put('lang', Auth::user()->lang);

或完整路径

Session::put('lang', \Illuminate\Support\Facades\Auth::user()->lang);

我能够使用事件侦听器修复它。在这个 的帮助下,我设法根据用户 属性 设置会话变量。如果有人需要更多帮助,请告诉我!