Laravel的Cookie没有设置主页上,而是设置在其他地方
问题描述:
我们在helpers.php这个函数,返回郎Laravel的Cookie没有设置主页上,而是设置在其他地方
function locale() {
if(Cookie::has('locale') && array_key_exists(Cookie::get('locale'), Config::get('languages'))) {
$locale = Cookie::get('locale');
} else {
$locale = 'en';
}
return $locale;
}
在每一个单页,它的工作原理,并返回正确的值。但是,由于某种原因,仅在索引页上,它总是'en'。
这是我们应该如何进行设置:
function setLocale(Request $request) {
$locale = $request->input('locale');
if(array_key_exists($locale, \Config::get('languages'))) {
$cookie = cookie()->forever('locale', $locale);
\App::setLocale($locale);
}
return redirect()->back()->withCookie($cookie);
}
答
哎呀,这似乎错误是在主页的路线是与web middleware
在一组,但我们还是将它设置
Route::get('/', [
'uses' => '[email protected]',
'as' => 'root',
'middleware' => 'web'
]);
从中删除中间件,因为它已经存在于路由组中解决了问题。