Jul 23, 2018
0
Level 6
Language Middleware, check 'language_id' record
How can I check a record 'language_id' for my authenticated users/partners, and then set the correct language parameters for their session?
class Language
{
protected $default = 'en';
protected $languages = [
'en',
'de',
];
public function handle($request, Closure $next)
{
if($request->has('lang')) {
$lang = $request->lang;
if(array_search($lang, $this->languages) === false) {
$lang = $this->default;
}
// How can I check on the authenticated user (User.php or Partner.php, both with 'language_id' on their table, referring to Language.php)
if(auth()->guard('partner')){
if (auth()->user()->language_id == 1) {
$request->session()->put('lang', 'en');
} elseif (auth()->user()->language_id == 2) {
$request->session()->put('lang', 'de');
}
} else{
if (auth()->user()->language_id == 1) {
$request->session()->put('lang', 'en');
} elseif (auth()->user()->language_id == 2) {
$request->session()->put('lang', 'de');
}
}
$request->session()->put('lang', $request->lang);
}
\App::setLocale( $request->session()->get('lang') );
return $next($request);
}
}
Please or to participate in this conversation.