使用动态计算属性重写模型工厂默认值


Overriding model factory defaults with a dynamically computed property

免责声明:PHP的经验几乎为零。

使用"修补匠"...我已经创建了(和持久)两个 id 分别为 1,2 的用户模型。现在,我想创建许多帖子(帖子模型),并且我想覆盖默认属性,使其是 1 到 2 之间的随机数(根据用户 ID)。

我怎样才能做到这一点?我真的无法传递给覆盖数组类似的东西

[‘user_id’ => rand( 1, 2 )] 

由于这只会计算一次,因此所有帖子都将具有相同的用户。此外,我不想覆盖模型工厂中的属性.php因为我希望动态计算user_id范围。

提前谢谢。

SK

你可以通过方法 ->create() 中的 'user_id' 来做到这一点;

factory(App'Post::class, 2)->create(['user_id' => rand(1, 2)]);

希望对你有帮助