当前位置:  开发笔记 > 编程语言 > 正文

获取控制器中的环境值

如何解决《获取控制器中的环境值》经验,为你挑选了4个好方法。

在我的.env文件中,我有以下内容:

IMAP_HOSTNAME_TEST=imap.gmail.com
IMAP_USERNAME_TEST=myemail@gmail.com
IMAP_PASSWORD_TEST=mypw

现在我想在我的控制器中使用它们.我试过这个,但没有结果:

$hostname = config('IMAP_HOSTNAME_TEST');

$ hostname变量等于null.如何在控制器中使用这些配置变量?



1> Chetan Ameta..:

尝试一下



使用`env()`可能会导致意外问题,请参阅Grant对此问题的解答-/sf/ask/17360801/#54286878。

2> Masum Ahmed ..:

如果您想尝试从控制器访问值,如果在Laravel 5.3+中不起作用,则返回null



解决方案:您需要在config文件夹..say values.php中创建一个文件,然后编写如下代码

values.php

 env('MY_VALUE',null),

    //add other values as you want

]

然后使用以下代码访问控制器中的值



其中"凭证"是文件名后跟"myvalue"键希望它有所帮助


不要忘记使用php artisan config:cache来提交配置更改。
不确定为什么这是低估的...这是L5.3 +的正确答案(大多数情况下).但是使用`values.php`的示例文件名,你实际上在控制器中引用它作为`$ value = config('values.myvalue');`

3> Grant..:

我想添加一个答案,以简化过去所说的话。只有配置文件可以访问env变量-然后将其传递。

步骤1.)将变量添加到.env文件中。

EXAMPLE_URL="http://google.com"

第2步。)config文件夹内创建一个新文件,可以使用任何名称,即。

config/example.php

步骤3.)在这个新文件的内部,我添加了一个返回的数组,其中包含该env变量。

 env('EXAMPLE_URL')
];

步骤4.)因为我将其命名为“ example”,所以我的配置“ namespace”现在为example。所以现在,在我的控制器中,我可以使用以下命令访问此变量:

$url = \config('example.url');

提示 -如果use Config;在控制器的顶部添加,则不需要反斜杠(用于指定根名称空间)。就是

namespace App\Http\Controllers;   
use Config; // Added this line

class ExampleController extends Controller
{
    public function url() {
        return config('example.url');
    }
}

---重要---php artisan config:cache创建完example.php文件后,请记住进入控制台。配置文件和变量被缓存,因此,如果您进行更改,则需要刷新该缓存-这同样适用于.env要更改/添加到的文件。



4> Clean code..:

当您的应用程序收到请求时,.env文件中列出的所有变量都将加载到$_ENVPHP超全局变量中 . 结帐laravel配置页面

$_ENV['yourkeyhere'];

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有