【问题标题】:Laravel - accessing .env variablesLaravel - 访问 .env 变量
【发布时间】:2019-01-29 21:53:42
【问题描述】:

我试图从根目录中的 .env 获取环境变量

Route::get('/test', function () {
    return "value is". getenv('APP_ENV');
});

Route::get('/test', function () {
    return "it is". env('APP_ENV');
});

它在 .env 中

APP_NAME=Laravel
APP_ENV=local

我怎样才能访问它?

【问题讨论】:

    标签: laravel laravel-5 environment-variables


    【解决方案1】:
     App::environment()
    

    请试试这个

    【讨论】:

    • 我试过 env('APP_ENV'), $_ENV('APP_ENV') 但结果为空。这个函数给了我结果。干杯:)
    【解决方案2】:

    只需在 cmd 中运行此命令。

    php 工匠配置:缓存

    然后

    php 工匠配置:清除

    然后

    php 工匠缓存:清除

    【讨论】:

      【解决方案3】:

      使用env('ENVKEY') 不要忘记由于缓存而导致的某个时候清除缓存。

      php artisan config:clear php artisan cache:clear composer dump-autoload

      更多信息请查看doc

      【讨论】:

      • 应用缓存不会影响环境变量,只会影响配置缓存。
      • 可能不是,但它不起作用。有很多情况,例如你可以检查这个stackoverflow.com/questions/43040967/…
      • 这很好,但唯一相关的是您的第一个命令。如果您认为其他两个命令与此问题相关,我建议您研究它们。
      • 我确实认为这是相关的,因此我添加了。谢谢你的信息,虽然我会研究它
      • 感谢这让我花了 1 小时才弄明白。 laravel 配置的新功能
      【解决方案4】:
      Route::get('/test', function () {
          return "it is".config('app.name');
      });
      

      【讨论】:

        【解决方案5】:

        使用 Laravel,您应该避免配置文件之外的环境变量。

        在你的配置文件中,你可以使用环境变量,例如在 config/app.php:

        'env' => env('APP_ENV', 'production'),
        

        然后您可以使用配置助手访问它:config('app.env')

        这允许您缓存您的配置并仍然访问这些值,因为env('APP_ENV')在您的配置被缓存后不再工作

        【讨论】:

        • 你在哪里设置了'production',它也可以是'OTHER_ENV_VAR'吗?
        • 我不明白你为什么不能嵌套 env 调用:env('APP_ENV', env('OTHER_ENV_VAR', 'ultimate_default'))
        【解决方案6】:

        laravel 为这类任务提供了一个全局辅助函数

        $val = config('app.something');
        

        您也可以通过以下方法设置新值

        config(['app.something' => 'cat']);
        

        reference

        对于您的特定任务,它会是

        $val = config('app.env');
        

        或全局确定环境

        $environment = App::environment();
        

        希望对你有帮助,祝你愉快!

        【讨论】:

        • 这是空的 Route::get('/test', function () { return "Environment ".config('APP_ENV'); });我必须将它设置在其他地方吗?
        • Javascript(刀片文件)怎么样?
        【解决方案7】:

        根据Environment Configuration 上的 Laravel 文档,

        此文件中列出的所有变量都将加载到 $_ENV 当您的应用程序收到请求时,PHP 超级全局。您可以使用 env 帮助器从这些变量中检索值。

        因此,可以将变量访问为

        $_ENV['envKey'];
        

        【讨论】:

          猜你喜欢
          • 2017-08-19
          • 2016-06-11
          • 2018-11-20
          • 2017-09-22
          • 2019-12-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-09-22
          相关资源
          最近更新 更多