使用Laravel 5.4播种机功能时出错
类型错误:参数1传递给 Illumb\Database\Eloquent\Relations\HasOneOrMany::save()必须是 Illumb\Database\Elount\Model的实例,的实例 照亮\数据库\雄辩\给定集合 我计划生成虚假的日期与配置文件的用户。我有两个模型:用户和配置文件。我已经完成了彼此之间的关系。但是当我执行它的时候,问题来了。以上是我运行播种机时的错误 这是发现bug的类使用Laravel 5.4播种机功能时出错,laravel,Laravel,类型错误:参数1传递给 Illumb\Database\Eloquent\Relations\HasOneOrMany::save()必须是 Illumb\Database\Elount\Model的实例,的实例 照亮\数据库\雄辩\给定集合 我计划生成虚假的日期与配置文件的用户。我有两个模型:用户和配置文件。我已经完成了彼此之间的关系。但是当我执行它的时候,问题来了。以上是我运行播种机时的错误 这是发现bug的类 public function run() { factory(App\
public function run()
{
factory(App\User::class, 40)->create()->each(
function($user) {
$user->profile()->save(
factory(App\Profile::class, 1)->make()
);
}
);
}
通过调用方法获取关系
$user->profile()
,将以集合的形式返回相关模型。您可以执行$user->profile()->first()
来获得类型为illighted\Database\elount\Model
的单一结果,或者只执行$user->profile
而不使用()
我猜您使用的是Laravel 5.4
已对factory()助手方法进行了修改。从文档中:
工厂帮工
调用factory(User::class,1)->make()或factory(User::class,1)->create()将返回一个包含一个项的集合。以前,这将返回单个模型。如果未提供金额,此方法将仅返回单个模型
这意味着您应该从factory()调用中删除1
编辑1:您必须更改此行:
factory(App\Profile::class, 1)->make()
对此
factory(App\Profile::class)->make()
谢谢你的回复。是的,我使用的是laravel 5.4。你能具体说明应该删除什么吗?因为我是初学者,不知道它是如何工作的。
factory(App\Profile::class)->make()