this is my code: the route:
Route::get('lang/change', [LangController::class, 'change'])->name('changeLang');
nav.blade.php
<div class="col-md-2 col-md-offset-6 text-right">
<strong>Select Language: </strong>
</div>
<div class="col-md-4">
<select class="form-control changeLang">
<option value="en" {{ session()->get('locale') == 'en' ? 'selected' : '' }}>English</option>
<option value="ar" {{ session()->get('locale') == 'ar' ? 'selected' : '' }}>Arabic</option>
</select>
</div>
@endauth
</ul>
</div>
<span class="text-white">{{ auth()->user() !=null ? auth()->user()->name : "Guest" }}</span>
</div>
</nav>
<script type="text/javascript">
var url = "{{ route('changeLang') }}";
$(".changeLang").change(function(){
window.location.href = url + "?lang="+ $(this).val();
});
</script>
this is the middleware: (i have registered it in the kernal with web middleware:
public function handle(Request $request, Closure $next)
{
if (session()->has('locale')) {
App::setLocale(session()->get('locale'));
}
return $next($request);
}