php Laravel 10 -获取env返回整个.env文件[关闭]

emeijp43  于 2023-11-16  发布在  PHP
关注(0)|答案(2)|浏览(197)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受回答。

这个问题是由错字或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
4天前关闭。
Improve this question
我已经尝试了几种不同的方法来实现这一点,但是如果我使用env("APP_ENV"),我将获得env文件的全部内容,而不是APP_ENV值
我知道这是不好的做法,但在使用Config时也得到了相同的结果
我试过artisan cache:clearartisan 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

9fkzdhlc

9fkzdhlc1#

从配置文件中获取的正确语法如下:

config('app.env')

字符串
而不是Config::get('app.APP_ENV'),其中app指的是文件本身:config\app.php,下一个字符串env指的是该文件上的键数组。
如果你想直接从env变量中读取,语法是:

env('APP_ENV')


我会检查.env文件中是否有未闭合的引号,这可能会使它无效。此外,当值是一个单词时,您不需要将其括在引号中。

APP_ENV=local


效果很好

pdkcd3nj

pdkcd3nj2#

感谢大家的帮助。我最终发现原来的代码有一个env文件旋转器。env文件的内容将包含一些文本,然后系统将使用该文本与.env扩展名来加载该特定文件。在删除所有这些之后,所有上述建议都有效。我已经将Joe的答案标记为正确,因为它在技术上是正确的,但不是解决方案。
如果其他人遇到类似的问题,对我来说,在\bootstrap\app.php文件中有一个包含同一文件夹中的environment.php文件。删除这个包含解决了这个问题,并将其返回到预期的输出。

相关问题