我们在helpers.php中有这个函数,它返回lang
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);
}
答案 0 :(得分:0)
糟糕,似乎错误是主页路由在web middleware
的组中,但我们仍在设置
Route::get('/', [
'uses' => 'HomeController@index',
'as' => 'root',
'middleware' => 'web'
]);
从该部分删除中间件,因为它已经存在于路由组中解决了这个问题。