从 Laravel 中的 .env 返回数据类型

Posted

技术标签:

【中文标题】从 Laravel 中的 .env 返回数据类型【英文标题】:Return datatype from .env in Laravel 【发布时间】:2020-05-04 12:29:26 【问题描述】:

我想拥有基于我的环境的动态播种机。 (例如,在测试中,我只希望播种 100 行,而本地则为 10'000)。

我在配置中创建了 seeder.php,它从 .env 文件中调用值。

当我在播种机中使用配置时,它会在 .env 中的一个值上返回一个字符串,该值应该是一个整数。 例如:

.env.local:

SEED_USER_COUNT=10000

config\seeder.php:

return [
    'user_count' => env('SEED_USER_COUNT', 10),
];

UserSeeder

factory(User::class, config('user_count'))->create();

上述方法无效,似乎config('user_count') 返回一个字符串"10000" 而不是整数10000

【问题讨论】:

你能不能只转换成 int 来解决这个问题,比如 factory(User::class, (int) config('user_count'))->create(); 【参考方案1】:

在配置文件中将变量转换为int

config/seeder.php

return [
    'user_count' => (int)env('SEED_USER_COUNT', 10),
];

用文件的前缀正确调用配置

UserSeeder

factory(User::class, config('seeder.user_count'))->create();

【讨论】:

行得通!谢谢(我在项目中正确调用了配置值,只是在这里输入错误)。

以上是关于从 Laravel 中的 .env 返回数据类型的主要内容,如果未能解决你的问题,请参考以下文章

.env 变量在 Laravel 项目中的 Vue 组件中返回 undefined

laravel / lumen 访问中间件中的 .env 值

Laravel .env 文件返回错误数据

laravel 5.8 在 getenv 上返回 false

PHP 工匠返回拒绝访问 Laravel 中的数据库连接

Laravel 的 ORM 返回的数据类型小结