在Laravel中从.env文件返回数据类型

5

我希望根据环境拥有动态的种子数据。(例如,在测试中,我只想播种100行,而在本地则是10,000)。

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

当我在我的seeder中使用配置时,它会返回一个字符串值,但实际上这个值应该是一个整数。

.env.local:

SEED_USER_COUNT=10000

config\seeder.php:

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

用户数据填充器
factory(User::class, config('user_count'))->create();

以上代码无法正常运行,似乎 config('user_count') 返回的是字符串 "10000" 而非整数 10000。请注意保留 HTML 标记。

2
你可以直接将其转换为整数来解决问题,例如 factory(User::class, (int) config('user_count'))->create(); - Qonvex620
1个回答

11
将您的变量在配置文件中转换为int config/seeder.php
return [
    'user_count' => (int)env('SEED_USER_COUNT', 10),
];
使用文件前缀正确调用配置。 UserSeeder
factory(User::class, config('seeder.user_count'))->create();

1
可以了!谢谢(顺便说一句,在项目中我调用配置值是正确的,只是在这里打错了)。 - n8udd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接