Level 1
Yeah! I used the same method in my previous project and it worked for me .
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Currently trying to check on a 'language_id' integer for my authenticated users/partners and then set the correct language parameters for their session?
Language.php middleware
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);
}
}
You'd need a bit of javascript for that, listening for the select's onchange event to redirect the user. Something like this:
<select onchange="changeLanguage(this.value);">
{{-- options --}}
</select>
(...)
<script>
function changeLanguage(val) {
window.location = val;
}
</script>
Please or to participate in this conversation.