Laravel根据$ _GET参数更改语言
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel根据$ _GET参数更改语言相关的知识,希望对你有一定的参考价值。
我们想要根据$ _GET参数设置区域设置语言设置(App :: setLocale())的简单场景,如下面的URL所示:
http://aboutlaravel.com/?language_code=en
可能的解决方案:创建一个中间件并在app / Http / Kernel.php中注册它
protected $middlewareGroups = [
'web' => [
...
AppHttpMiddlewareLocalization::class
],
本地化中间件将如下所示:
public function handle($request, Closure $next)
{
if(isset($_GET['language_code'])) {
if ($_GET['language_code'] == "en") {
App::setLocale("en");
} else if ($_GET['language_code'] == "de") {
App::setLocale("de");
}
}
return $next($request);
}
答案
使用PHP> = 7.0,您可以使用非常漂亮的单线程。
只要用这个:
App::setLocale(request('langauge_code', 'en'));
// en is the default is request has no language_code
就是这样:)
另一答案
我没有看到这个问题,但我认为你需要它。
if(empty($request->input('language_code'))) {
// set "en" as default language
App::setLocale("en");
} else {
App::setLocale($request->input('language_code'));
}
以上是关于Laravel根据$ _GET参数更改语言的主要内容,如果未能解决你的问题,请参考以下文章