Laravel 4带有伪造,环境变量问题

时间:2014-08-22 19:30:07

标签: database laravel laravel-4 environment-variables laravel-forge

我在使用伪造和环境变量方面遇到了麻烦。当我使用getenv('DB_NAME')时,我会在尝试迁移时遇到连接问题。当我var_dump BaseController.php中的值时,我得到了正确的值。但仍然没有工作。如果我改为在database.php配置文件中写入给定var_dump的值,我就可以了。但是,当价值观正确时,为什么地狱不能与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得到的值,一切正常。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

确保您的env文件名为.env.php,而不是.env.production.php。我犯了这个错误,虽然.env.production.php会在应用中运行,但在使用Artisan时却不会。

在Forge中创建env变种时,如果它适用于生产环境,请确保将环境字段留空,而不是明确将其设置为生产。