在 Lumen 的 .env 文件中定义 APP_LOCALE 的 运行 时间设置值

Setting values at run time for APP_LOCALE defined in .env file in Lumen

我最近开始学习 Lumen 微框架,我需要在 运行 时间内更改我的 .env 文件中定义的 APP_LOCALE 键的值。我的目标是在 运行 时间切换语言以打印我的语言文件中定义的特定字符串的不同翻译。

在 Lumen 文档中写道:

To set configuration values at runtime, pass an array to the config helper

所以我在测试控制器中尝试了休闲:

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 文件中,我的 "default" APP_LOCALE 设置为 'fr' 并且调用此控制器的结果以法语打印我的字符串两次,而不是预期的一次以法语打印然后英语一次。

如何在 运行 时更改值?

config/app.php 中的键是 locale,而不是 LOCALE,因此您需要 config(['app.locale' => 'en']).env 中的名称不一定是 config 文件夹文件中的名称。

显然有人在我发布几天后 得到的答案是:

app('translator')->setLocale('en');