在我的.env文件中,我有以下内容:
IMAP_HOSTNAME_TEST=imap.gmail.com IMAP_USERNAME_TEST=myemail@gmail.com IMAP_PASSWORD_TEST=mypw
现在我想在我的控制器中使用它们.我试过这个,但没有结果:
$hostname = config('IMAP_HOSTNAME_TEST');
$ hostname变量等于null.如何在控制器中使用这些配置变量?
尝试一下
如果您想尝试从控制器访问值,如果在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
文件中列出的所有变量都将加载到$_ENV
PHP超全局变量中 . 结帐laravel配置页面$_ENV['yourkeyhere'];