【问题标题】:How to use ENV variables in Artisan Commands in Laravel 5.8?如何在 Laravel 5.8 的 Artisan 命令中使用 ENV 变量?
【发布时间】:2019-08-23 12:14:39
【问题描述】:

我正在创建自己的 artisan 命令并且我想使用 ENV 变量,但是当我使用 $_ENV['VariableName'] 时出现错误。

local.ERROR: Undefined index: VariableName

相同的代码在控制器中完美运行,但由于未生成此代码而出现错误。

我正在使用php artisan make:command CommandName 创建我的命令

如何开始在那里使用 ENV 变量?谢谢!我想在内部的私有函数中使用变量:

class CommandName extends Command 但在public function handle() 之外

【问题讨论】:

    标签: laravel laravel-5 environment-variables


    【解决方案1】:

    您可以使用 Laravel Helper 访问环境变量,如下所示:

    env('VariableName')

    如果没有设置环境变量,也可以指定默认值

    env('VariableName', 'myName')

    Laravel Docs 5.8 Helpers

    【讨论】:

    • 谢谢,这完成了工作。我不知道我怎么在文档中错过了这个!
    • @Moritz 你能具体说明哪个助手类是used 以允许在Artisan Command 类文件中评估env 函数吗?无需指定任何默认值即可评估...在您在答案中添加的文档链接中,它只是说Miscellaneous,但从未明确提及要包含的类...
    【解决方案2】:

    由于.env 文件未推送到存储库,因此最好的方法是使用配置文件。因此,在config 目录中,创建您的自定义文件,例如:custom.php,其内容如下:

    <?php
    
    return [
       'variable' => env('VARIABLE_NAME', 'DEFAULT_VALUE')
    ];
    

    在您的.env 中您应该输入:

    VARIABLE_NAME=something
    

    然后要使用它,请使用config('custom.variable');

    【讨论】:

    • 对于任何人的 env 和 config 值在命令中返回 null,这是最好的方法
    猜你喜欢
    • 2019-08-12
    • 2021-02-11
    • 2022-01-09
    • 2016-05-20
    • 2015-11-14
    • 2015-02-21
    • 2018-10-19
    • 2014-04-01
    • 2023-04-02
    相关资源
    最近更新 更多