我最近开始学习Lumen微框架,我需要在运行时更改我的.env文件中定义的APP_LOCALE键的值。我的目标是在运行时切换语言以打印我的语言文件中定义的某个字符串的不同翻译。
在Lumen文档中写道:
要在运行时设置配置值,请将数组传递给配置帮助程序
所以我在测试控制器中尝试了以下操作:
use Illuminate\Support\Facades\App;
use Laravel\Lumen\Routing\Controller as BaseController;
class Controller extends BaseController{
public function show_test(){
echo(trans('testfile.greetings'));
config(['app.LOCALE' => 'en']);
echo(trans('testfile.greetings'));
}
}
在我的.env文件中我的"默认" APP_LOCALE设置为' fr'并且调用此控制器的结果用法语打印我的字符串两次,而不是用法语打印我的字符串然后用英语打印一次。
如何在运行时更改值?
答案 0 :(得分:3)
显然有人在我后几天发布了same question并得到了答案:
app('translator')->setLocale('en');
答案 1 :(得分:1)
config/app.php
中的密钥为locale
,而不是LOCALE
,因此您需要config(['app.locale' => 'en'])
。 .env
中的名称不一定是config
文件夹文件中的名称。