gpt4 book ai didi

php - 如何让数据库播种工作的多级工厂

转载 作者:可可西里 更新时间:2023-11-01 00:31:00 24 4
gpt4 key购买 nike

所以我正在尝试设置工厂以允许随机播种测试数据库。我希望能够创建一组用户,然后他们创建一组房间,然后向这些房间发表评论。

这是我的:

factory('App\User', 5)->create()->each(function($u) {
$u->rooms()->save(factory('App\Room', 10)->create()->each(function($p) {
$p->posts()->save(factory('App\Post', 10)->make());
}));
});

我收到以下错误:

Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, instance of Illuminate\Database\Eloquent\Collection given

我假设错误意味着它在尝试创建帖子之前没有创建房间?

最佳答案

可能有点晚了,但是你必须调用 saveMany(...) 而不是 save(...)Eloquent documentation 中所述

事实上,您想要创建多个对象 (factory('App\Room', 10)->create()factory('App\Post', 10) ->make()),它返回一个集合(简而言之,一个对象数组)

特别感谢提醒我RTM的 friend ^^

关于php - 如何让数据库播种工作的多级工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31332428/

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