我们在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);
}
Whoops,似乎错误是主页路由与web middleware
在一个组中,但我们仍将其设置为
Route::get('/', [
'uses' => 'HomeController@index',
'as' => 'root',
'middleware' => 'web'
]);
从这个部分中删除中间件,因为它已经存在于路由组中,解决了这个问题。