1
我試圖在Laravel中創建語言環境切換器。Laravel中的語言環境不變
當用戶登錄,切換效果很好,但是當客人,什麼也沒發生,我無法找到的bug ......
這裏是我的文件:
在我登錄觀,我有我的切換:
<ul class="dropdown-menu">
<li><a class="mexico" href="{{ URL::action('[email protected]', 'es') }}">
<img src="/images/flags/MX.png" alt="Español"> Español</a></li>
<li><a class="english" href="{{ URL::action('[email protected]', 'en') }}">
<img src="/images/flags/GB.png" alt="English"> English</a></li>
</ul>
這裏是我的LanguageController:
class LanguageController extends Controller
{
public function update($locale){
if(Auth::check()){
Auth::user()->locale = $locale;
Auth::user()->save();
}
Lang::setLocale($locale);
app()->setLocale($locale);
return redirect()->back();
}
}
我routes.php文件
Route::get('lang/{lang}', '[email protected]'); // This is outside any middleware
我有一個全球性的中間件處理區域設置:
public function handle($request, Closure $next)
{
if (Auth::check()) {
app()->setLocale(Auth::user()->locale);
}
else {
$locale = Lang::getLocale();
app()->setLocale($locale);
}
return $next($request);
}
如果用戶登錄,現場被存儲在數據庫,否則,應用區域設置了......
默認語言環境是西班牙語。
當我嘗試選擇英語時,它什麼都不做。
dd(Lang::getLocale());
給我「恩」在LanguageController所以,它應該工作的結束,但如果我把這個同一行
dd(Lang::getLocale());
在登錄視圖(它會返回重定向後回到那裏() - > back();),它給我「es」
我不明白爲什麼!
任何想法???
編輯:
當我更換:
return redirect()->back();
與
return view ('auth/login');
它的工作原理。
擴展,看來,當我使用重定向(),它會失敗......仍然不知道如何解決它。