在Laravel 4.2文档的"访问配置值"部分中,他们说:
如果配置选项不存在,您还可以指定要返回的默认值:
$timezone = Config::get('app.timezone', 'UTC');
但是当我测试它时,我发现如果timezone
配置文件中不存在该选项app.php
则会显示一条错误消息:Undefined index: timezone
会引发,即使timezone
选项存在但没有设置正确的时区值(例如:UTC
或Europe/Paris
),那么该代码也会引发错误: date_default_timezone_set(): Timezone ID 'wrong_timezone_value_here' is invalid
那么,timezone
配置选项有什么问题?!Laravel中是否有任何其他配置选项的行为类似于timezone
选项?!
Laravel 4.x 不使用正常的 Config 代码来设置默认时区,而是直接调用数组。您可以在
vendor/Laravel/Framework/src/Illuminate/Foundation/start.php
$config = $app['config']['app'];
date_default_timezone_set($config['timezone']);
因此,任何值都需要直接在配置中设置,并且该项目必须存在。此外,它不能在运行时直接更改,或者更确切地说,您可以更改值,但它不会调用date_default_timezone_set
- 您需要自己执行此操作。