【发布时间】:2015-07-06 11:25:00
【问题描述】:
我几乎全新安装了 Lumen。
我有一个POST 路由,它通向一个控制器。在请求中,我发送带有字符串值的lang 参数。
public function form(Request $request)
{
if ($request->has('lang')) {
app('config')->set('app.locale', $request->input('lang'));
}
return view('form');
}
我的/resources/lang/ 文件夹中还有一个名为bg 的文件夹。在这个文件夹中,我有一个简单的文件,它有一个数组,就像在resources/lang/en/validation.php 中一样 - 称为static.php。
在我显示的视图中,我有几行说:
<input type="text" name="email" value="" class="input-default" placeholder="{{trans('static.enter_email')}}"/>
我在resources/lang/... 的这些语言文件中设置的文本已正确显示,但在显示表单之前我无法更改语言环境。
例如,如果在我的 dotenv 文件中设置:
APP_LOCALE=en
并加载视图,resources/lang/en/static.php 中的字符串已加载。
如果我将APP_LOCALE 更改为bg 并再次加载视图,我会从resources/lang/bg/static.php 获取字符串。
我想要的只是在渲染视图之前设置语言环境,这似乎不适用于我上面提供的代码(在我的控制器中)。
我在官方网站上也找不到任何关于 Lumen 本地化的信息,但我想它支持这样的,因为 trans() 正在工作。
【问题讨论】:
-
不应该是 $app('config') 而不是 app('config') 吗?
-
Shouldn't it be $app('config') not app('config')你想说什么?