**已关闭。**此问题为not reproducible or was caused by typos。目前不接受回答。
这个问题是由错字或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
4天前关闭。
Improve this question的
我已经尝试了几种不同的方法来实现这一点,但是如果我使用env("APP_ENV")
,我将获得env文件的全部内容,而不是APP_ENV值
我知道这是不好的做法,但在使用Config
时也得到了相同的结果
我试过artisan cache:clear
和artisan config:clear
,结果还是一样。
// dd(Config::get('env')); // this does the same
dd(Config::get('app.APP_ENV'), Config::get('app.EMAILMODE'), env("APP_ENV"));
字符串
返回
"""
APP_NAME=Laravel
APP_ENV="local"
APP_KEY=*removed*
APP_DEBUG=true
APP_URL=*removed*
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=sqlsrv
DB_HOST=*removed*
DB_PORT=1433
DB_DATABASE=*removed*
DB_USERNAME=*removed*
DB_PASSWORD=*removed*
DB_ENCRYPT=true
DB_TRUST_SERVER_CERTIFICATE=true
""" // app/Http/Controllers/SecurityScanController.php:32
"testing" // app/Http/Controllers/SecurityScanController.php:32
"""
APP_NAME=Laravel
APP_ENV="local"
APP_KEY=*removed*
APP_DEBUG=true
APP_URL=*removed*
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=sqlsrv
DB_HOST=*removed*
DB_PORT=1433
DB_DATABASE=*removed*
DB_USERNAME=*removed*
DB_PASSWORD=*removed*
DB_ENCRYPT=true
DB_TRUST_SERVER_CERTIFICATE=true
""" // app/Http/Controllers/SecurityScanController.php:32
型
2条答案
按热度按时间9fkzdhlc1#
从配置文件中获取的正确语法如下:
字符串
而不是
Config::get('app.APP_ENV')
,其中app
指的是文件本身:config\app.php
,下一个字符串env
指的是该文件上的键数组。如果你想直接从env变量中读取,语法是:
型
我会检查.env文件中是否有未闭合的引号,这可能会使它无效。此外,当值是一个单词时,您不需要将其括在引号中。
型
效果很好
pdkcd3nj2#
感谢大家的帮助。我最终发现原来的代码有一个env文件旋转器。env文件的内容将包含一些文本,然后系统将使用该文本与.env扩展名来加载该特定文件。在删除所有这些之后,所有上述建议都有效。我已经将Joe的答案标记为正确,因为它在技术上是正确的,但不是解决方案。
如果其他人遇到类似的问题,对我来说,在
\bootstrap\app.php
文件中有一个包含同一文件夹中的environment.php
文件。删除这个包含解决了这个问题,并将其返回到预期的输出。