Laravel:基于用户表

时间:2017-10-31 03:41:22

标签: laravel laravel-5.4

版本:

  • Laravel版本:5.4。*
  • PHP版本:5.6.x

说明

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

重现步骤:

我创建了一个新的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);    
}

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

2 个答案:

答案 0 :(得分:0)

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

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

或使用完整路径

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

答案 1 :(得分:0)

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