2

我在使用 forge 和环境变量时遇到问题。当我使用getenv('DB_NAME')等时,我在尝试迁移时遇到连接问题。当我var_dump在 BaseController.php 中的值时,我有正确的值。但仍然无法正常工作。如果我改为将给定 var_dump 中的值写入database.php配置文件中,我会得到它的工作。但是,当值正确时,为什么它不能与 getenv 一起使用,有什么想法吗?

在我的 BaseController.php 中:

var_dump(getenv('DB_HOST'));
var_dump(getenv('DB_NAME'));
var_dump(getenv('DB_USERNAME'));
var_dump(getenv('DB_PASSWORD'));

在我的 database.php 中:

'host'      => getenv('DB_HOST'),
'database'  => getenv('DB_NAME'),
'username'  => getenv('DB_USERNAME'),
'password'  => getenv('DB_PASSWORD'),

使用此代码,我收到错误消息:

[PDOException]                                                                     
SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO) 

如果我改为在 BaseController.php 中写入从 var_dumps 获得的值,一切正常。有任何想法吗?

4

1 回答 1

3

确保您调用的是 env 文件.env.php而不是.env.production.php. 我犯了这个错误,虽然.env.production.php在应用程序中可以工作,但在使用 Artisan 时不会。

在 Forge 中创建环境变量时,如果是用于生产环境,请务必将环境字段留空,而不是将其显式设置为生产环境。

于 2014-08-23T15:04:01.537 回答