Laravel配置用于不同环境的多维数组

时间:2015-04-09 03:51:08

标签: laravel multidimensional-array configuration environment

版本:laravel-4.2.11

环境:生产&&本地

生产,本地都有一个名为'app.php'的文件

生产中:

'test-key'   =>  [
    1   =>  [
        'customer_service'  =>  [],
        'customer_manage'   =>  []
    ],
    3   =>  [
        'customer_service'  =>  ['a', 'b', 'c', 'd'],
        'customer_manage'   =>  []
    ],
],

在当地:

'test-key'   =>  [
    1   =>  [
        'customer_service'  =>  [],
        'customer_manage'   =>  []
    ],
    3   =>  [
        'customer_service'  =>  ['b', 'e'],
        'customer_manage'   =>  ['b', 'e']
    ],
],

当我在本地环境中使用Config::get('app.test-key')[3]['customer_service']时,我得到结果:['b', 'e', 'c', 'd']

这不是预期的。

任何人都可以告诉我为什么会这样?

1 个答案:

答案 0 :(得分:0)

Laravel通过bootstrap/start.php文件检测您正在使用的环境。

解决此问题的最佳方法是在PHP配置中设置服务器变量。

以下是start.php文件中的环境检测代码示例:

$env = $app->detectEnvironment(function()
{
    if(isset($_SERVER['LARAVEL_ENV']))
    {
        return $_SERVER['LARAVEL_ENV'];
    }
    else
    {
        return 'development';
    }
});

$_SERVER['LARAVEL_ENV']值通常是“生产”或“开发”。

来源:http://laravel.com/docs/4.2/configuration#environment-configuration