Laravel 5 не читает значения из точечных файлов ENV
Я не знаю, является ли этот вопрос актуальным или нет. LARAVEL 5 все еще находится в стадии разработки. Я вытащил LARAVEL 5 после просмотра одного из видео Laracast о новых функциях в LARAVEL 5. Я не удержался, чтобы дождаться его официального выхода.
Я назвал местную среду dot
подать как .env.local.php
, Но по какой-то причине я не могу получить значения из этого файла точек при использовании $_ENV['KEY']
,
Я совершенно уверен, что правильно настроил среду. При выполнении $app->environment()
показывает правильную среду. Изменено ли это в LARAVEL 5, как мы получаем значения из точечных файлов, или я что-то упустил?
1 ответ
По умолчанию в environment.php
файл у вас есть что-то вроде этого:
if (file_exists(__DIR__.'/../.env'))
{
Dotenv::load(__DIR__.'/../');
}
так только .env
файл читается (уведомление .env
не .env.php
- поэтому вы должны переименовать ваш файл - или вы можете добавить в качестве имени файла второго параметра .env.php
если ты хочешь). Любые другие файлы среды (.local.env
) не читаются по умолчанию - вам нужно будет загрузить их вручную.
Если у вас нет такого кода по умолчанию, вам, вероятно, следует обновить / установить Laravel 5 снова (изменения появляются очень часто)
Теперь я не знаю, какой метод вы используете, но вы можете положить в свой .env
также укажите имя вашей среды, например APP_ENV
переменная, создать .local.env
файл с содержанием, которое вы хотите, а затем вы можете использовать в environment.php
файл:
if (file_exists(__DIR__.'/../.env'))
{
Dotenv::load(__DIR__.'/../');
if (getenv('APP_ENV') && file_exists(__DIR__.'/../.' .getenv('APP_ENV') .'.env')) {
echo "loading";
Dotenv::load(__DIR__ . '/../', '.' . getenv('APP_ENV') . '.env');
}
}
Если вы не хотите делать это таким образом, вы можете изменить другой файл и загрузить нужный файл env на основе $env
при условии, что вы используете обнаружение среды на базе ПК.
Если неясно, вы также можете посмотреть , как правильно установить переменные ENV в Laravel 5?