You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何使用env方法读取.env.testing文件的环境变量

读取.env.testing环境变量的实现方案

Laravel运行时默认仅加载根目录下的.env文件,env()方法只会从已加载到内存的环境变量集合中取值,不会主动读取其他后缀的.env文件,你可以用以下3种方式实现需求:

  • 方法1:运行Artisan命令时临时指定环境(最便捷)
    执行Artisan命令时添加--env=testing参数,Laravel会自动加载.env.testing文件覆盖默认配置,此时正常调用env()方法即可拿到对应值:
php artisan your:command --env=testing
  • 方法2:临时读取.env.testing变量不影响全局
    如果仅需要读取部分.env.testing的变量,不想改动当前运行时的全局环境配置,可以直接解析文件内容取值:
// 解析.env.testing文件内容返回变量数组
$testingEnv = \Dotenv\Dotenv::parse(file_get_contents(base_path('.env.testing')));

// 直接通过数组键读取对应变量,例如读数据库配置
$dbHost = $testingEnv['DB_HOST'] ?? null;

该方法读取的变量仅在当前返回的数组内生效,不会覆盖全局环境变量,不影响其他业务逻辑调用env()的取值结果。

  • 方法3:Artisan命令内固定加载testing环境
    如果你的命令本身固定需要使用testing环境的变量,可以在命令的handle方法开头加入全局加载逻辑:
public function handle()
{
    // 将.env.testing的变量加载到全局环境
    \Dotenv\Dotenv::createImmutable(base_path(), '.env.testing')->load();
    
    // 后续调用env()即可拿到testing环境的变量
    $appDebug = env('APP_DEBUG');
}

内容的提问来源于stack exchange,提问作者mateonunez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 02:48:05