【发布时间】:2019-07-21 03:53:18
【问题描述】:
我想每次使用已经存在的 Laravel (5.7) 工厂生成相同的数据。我看到 Faker 确实有一个设置种子的选项 - $faker->seed(123);,但这必须添加到每个工厂。
我一直在寻找一种方法来做到这一点,但没有成功。 $faker 是在Factory 类的构造函数中设置的,我想我可以扩展它并将种子方法添加到$faker。问题是此类在供应商文件helpers.php (line 495) 中使用,无法修改。有没有办法覆盖 Laravel 中的那些辅助函数?或者也许有一种更简单的方法,但我没有看到。
【问题讨论】:
-
如果你想要每次都一样,为什么还要使用Faker?为什么不直接做
$foo->bar = 'whatever';? -
因为你不想自己写 500 次 "whatever $x" 但仍然想要可比较的结果,例如在测试环境中。