【发布时间】:2015-02-26 10:45:56
【问题描述】:
我在 Laravel 4.2 中有以下设置:
bootstrap/start.php(主机名正确,环境是本地)
$env = $app->detectEnvironment(array(
'production' => array('produrl'),
'local' => array('MBP-Ivo.local', 'iMac-Ivo.local'),
));
.env.local.php(在项目根目录下,.env.php除了mysql信息完全一样)
<?php
return [
// Code variables
'mysqlUsername' => 'user',
'mysqlPassword' => 'password',
'mysqlDatabase' => 'database',
'paymentIdeal' => false,
'shipmentCountries' => [
'Nederland' => 'Nederland',
'Belgie' => 'Belgie'
]
];
config/app.php(我不会用 app/config/local/app.php 覆盖)
<?php
return array(
'paymentIdeal' => $_ENV['paymentIdeal'],
'shipmentCountries' => $_ENV['shipmentCountries']
);
还有一些变量,但问题在于 shipmentCountries。
未定义索引:shippingCountries
声明的所有变量都在工作(例如 paymentIdeal),但 shippingCountries 给出错误。我想是因为它是一个数组?名称在任何地方都完全相同,包括大写字母。
有谁知道为什么我不能让它工作?
顺便说一句:我选择此选项是为了防止用户不得不更改他们的应用程序配置。我只想使用一个 *.env 文件来配置所有重要的东西。是的,我知道这些值可以保存到数据库中,但那是为了以后:)
/编辑: 当我转储 $_ENV 时,我得到以下信息:
Array
(
[mysqlUsername] => ***
[mysqlPassword] => ***
[mysqlDatabase] => ***
[paymentIdeal] =>
[shipmentCountries.Nederland] => Nederland
[shipmentCountries.Belgie] => Belgie
);
不知何故,它“扁平化”了数组 shippingCountries。任何人都知道如何以及为什么?
【问题讨论】:
-
var_dump的$_ENV显示什么? -
见上文,它以某种方式“压平”了数组?但是为什么...?
标签: php laravel laravel-4 environment-variables