作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
所以我正在尝试设置工厂以允许随机播种测试数据库。我希望能够创建一组用户,然后他们创建一组房间,然后向这些房间发表评论。
这是我的:
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/
我是一名优秀的程序员,十分优秀!