为什么Laravel在设置环境后使用错误的数据库文件?

时间:2013-08-15 19:27:02

标签: laravel laravel-4

bootstrap/start.php我有以下内容:

$env = $app->detectEnvironment(function()
{
    if($myenv = getenv('APPLICATION_ENV')):
        return $myenv;
    else:
        return 'local';
    endif;
});

好的,所以我设置了一个本地文件夹并输入了一个带有本地连接的d​​atabase.php文件。

只是为了确保它选择了我放在模板中的正确环境:{{ App::environment(); }}输出local

但是在进行数据库调用时,它会给我一个错误: Undefined index : DB1_HOST

我的基础(生产)database.php文件有:

'host'      => $_SERVER["DB1_HOST"],
'database'  => $_SERVER["DB1_NAME"],
'username'  => $_SERVER["DB1_USER"],
'password'  => $_SERVER["DB1_PASS"],

为什么要查看生产数据库文件?

4 个答案:

答案 0 :(得分:2)

Laravel还将配置信息存储在

bootstrap/cache/config.php

在某些情况下,它未更新,可能导致错误的数据库信息。删除文件应该可以解决问题。

答案 1 :(得分:1)

如果您尝试在终端中使用工匠,并且想要一劳永逸地设置环境变量,您可以这样做:

export APPLICATION_ENV=local

使用php artisan env

检查当前环境

答案 2 :(得分:1)

首先加载生产配置文件,然后将其与来自其他环境的替换合并。如果生产文件生成错误(例如未定义的索引),则配置加载将提前保释而不加载覆盖。在生产配置文件中,在尝试使用它之前检查该值是否已设置,然后本地配置文件将正确加载。

答案 3 :(得分:1)

清理可能影响的配置缓存

  

php artisan config:cache