Я хочу изменить свою локаль с помощью Axios Call:
changeLanguage(code) {
return axios
.put(`/api/lang/` + code)
.then(response => {
console.log(response.data);
})
.catch(err => {
return "Error switching language";
console.log(err.response);
});
},
Мой маршрут API:
Route::group(['middleware' => ['sessions']], function () {
Route::put('lang/{language}', 'LanguageController@switchLang');
});
Промежуточное программное обеспечение моих сессий:
'sessions' => [
\Illuminate\Session\Middleware\StartSession::class,
]
Мой LanguageController:
public function switchLang(Request $request, $lang)
{
session(['applocale' => $lang]);
app()->setLocale($lang);
}
Мой IndexController:
public function index()
{
\Debugbar::info("Index getLocale is: " . app()->getLocale());
\Debugbar::info("Index Session locale is: " . session('applocale'));
}
Проблема в том, что LanguageController не может установить переменную сеанса, которая может быть прочитана из IndexController. Похоже, что они не используют одни и те же переменные сеанса. И каждый раз, когда я обновляю страницу, она показывает старый язык.
Как правильно изменить текущую локаль с помощью Axios?