我一直在尝试更新网站的语言。
控制器
public function getUpdateLanguage(Request $request) {
$request_data = $request->all();
\Session::put('locale', $request_data['language']);
return redirect()->back();
}
中间件:
public function handle($request, Closure $next)
{
if ( \Session::has('locale')) {
\App::setLocale(\Session::get('locale'));
}
return $next($request);
}
但真正的障碍if ( \Session::has('locale'))
从不执行,语言始终为“en”并且从不更新。如果我尝试的话效果很好
public function handle($request, Closure $next)
{
\App::setLocale('arabic');
return $next($request);
}
kernel:
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\Localization::class,
];
本地化是我的中间件。语言更新控制器方法重定向到主页:
public function getIndex() {
return view('frontend.home');
}
有人可以指导我会话值在哪里被清除或者我是否做错了并且有更好的方法?