Lub*_*kov 2 php session localization laravel
我正在尝试使用 Laravel 进行本地化,但我的代码不起作用,有什么意见或建议吗?
这是代码:
我的Language中间件handle()方法:
public function handle($request, Closure $next)
{
if(Session::has('locale')) {
$locale = Session::get('locale', Config::set('app.locale'));
} else {
$locale = "bg";
}
App::setLocale($locale);
return $next($request);
}
Run Code Online (Sandbox Code Playgroud)
我的控制器方法:
public function changeLang(Request $request,$lang) {
if (!empty($request)) {
Session::put('locale',$lang);
} else {
Session::set('locale',$lang);
}
return back();
}
Run Code Online (Sandbox Code Playgroud)
这是我的路线:
Route::get('/{lang}','LanguageController@changeLang');
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
希望这段代码对您有用。
控制器
public function index($locale)
{
session(['locale' => $locale]);
App::setLocale($locale);
return Redirect::back();
}
Run Code Online (Sandbox Code Playgroud)
语言中间件:
public function handle($request, Closure $next)
{
if (Session::has('locale')) {
App::setLocale(Session::get('locale'));
}
else { // This is optional as Laravel will automatically set the fallback language if there is none specified
App::setLocale(Config::get('app.fallback_locale'));
}
return $next($request);
}
Run Code Online (Sandbox Code Playgroud)
路线:
Route::get('/{lang}', 'LanguageController@index');
Run Code Online (Sandbox Code Playgroud)
最后在 middlewaregroup 的 app/Http/Kernal.php 中添加你的 Langauge 中间件
\App\Http\Middleware\Language::class,
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2381 次 |
| 最近记录: |