gpt4 book ai didi

php - 为 Laravel 的工厂在全局设置 Faker 的种子

转载 作者:行者123 更新时间:2023-12-05 03:02:19 24 4
gpt4 key购买 nike

我想每次都使用现有的 Laravel (5.7) 工厂生成相同的数据。我看到 Faker 确实有一个设置种子的选项 - $faker->seed(123);,但这必须添加到每个工厂。
我一直在寻找一种方法来做到这一点,但没有成功。 $faker 设置在 Factory 类的构造函数中,我想我可以扩展它并将 seed 方法添加到 $faker。问题是此类在 helpers.php(第 495 行) 中使用,这是供应商文件,无法修改。有没有办法在 Laravel 中覆盖这些辅助函数?或者也许有更简单的方法,但我没有看到。

最佳答案

\Illuminate\Database\Eloquent\Factory 类有一个额外的静态构造函数,它允许您传入自己的 faker 实例,然后正常加载现有工厂。您可以按如下方式使用它:

$faker = \Faker\Factory::create();
$faker->seed(1234);
$factory = \Illuminate\Database\Eloquent\Factory::construct($faker);

// Then use the factory as follows
$user = $factory->of(\App\User::class)->create();

如果您需要在测试基地的多个地方使用种子工厂,我建议您将它绑定(bind)到 setUp() 方法中的容器。

关于php - 为 Laravel 的工厂在全局设置 Faker 的种子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54905253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com