gpt4 book ai didi

php - 本地化 Laravel

转载 作者:行者123 更新时间:2023-12-02 20:31:28 45 4
gpt4 key购买 nike

我一直在尝试更新网站的语言。

Controller

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')) 的 true block 永远不会执行,并且语言始终为 'en' 并且永远不会更新。如果我尝试的话效果很好

 public function handle($request, Closure $next)
{

\App::setLocale('arabic');

return $next($request);
}

内核:

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,
];

本地化是我的中间件。语言更新 Controller 方法重定向到主页:

public function getIndex() {
return view('frontend.home');
}

有人可以指导我 session 值在哪里被清除或者我是否做错了并且有更好的方法?

最佳答案

\Illuminate\Session\Middleware\StartSession::class 添加到 kernel.php 中的 middleware 数组:

protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\Illuminate\Session\Middleware\StartSession::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\Localization::class,
];

关于php - 本地化 Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48607759/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com