Symfony:未考虑文件 .env.local

问题描述 投票:0回答:1

我的项目有问题,从一开始似乎就没有考虑 .env.local 。我的 .env 是这样的:

APP_ENV=
APP_SECRET=secret

###> symfony/mailer ###
# MAILER_DSN=smtp://localhost
[email protected]
MAILER_URL=sendmail://localhost
###< symfony/mailer ###

###> symfony/ldap ###
LDAP_HOST=
LDAP_PASS=
LDAP_BASE_DN=
LDAP_SEARCH_DN=
LDAP_UID_KEY=sAMAccountName
LDAP_FILTER=(&(objectClass=Person)({uid_key}={username}))
###< symfony/ldap ###


 DATABASE_URL=mysql://root:[email protected]:3306/intranet?serverVersion=mariadb-10.3.22&charset=utf8

然后我想覆盖一些变量,所以我在 .env.local 中这样做了:

APP_SECRET=secret

###> symfony/ldap ###
LDAP_HOST="blabla"
LDAP_PASS="blabla"
LDAP_BASE_DN="blabla"
LDAP_SEARCH_DN="blabla"
###< symfony/ldap ###

但是当我尝试访问这些变量时,我会从我的 .env 中获取该变量。我已经测试了各种东西,例如没有我需要的变量的 .env 并仅在 .env.local 中定义它们,但随后出现错误:

Environment variable not found: "LDAP_HOST".

我真的不知道为什么它不起作用。正在尝试调试,非常感谢

symfony environment-variables
1个回答
0
投票

对于 Symfony 5.4

只需在

APP_ENV=local
文件中添加
.env.local

因为在 https://github.com/symfony/dotenv/blob/7.1/Dotenv.php#L120 中,如果 env 等于

local

,它就会返回

这是如何获取该值的https://github.com/symfony/dotenv/blob/7.1/Dotenv.php#L117

© www.soinside.com 2019 - 2024. All rights reserved.