2016-04-14 56 views
0

我們在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); 
} 

回答

0

哎呀,這似乎錯誤是在主頁的路線是與web middleware在一組,但我們還是將它設置

Route::get('/', [ 
    'uses' => '[email protected]', 
    'as' => 'root', 
    'middleware' => 'web' 
]); 

從中刪除中間件,因爲它已經存在於路由組中解決了問題。