自从laravel(laravel 8)的这个“新”更新以来,我一直在与工厂作斗争。我需要关于如何提供唯一的ID从用户模型中的配置文件工厂中的user_id列的帮助。在我的User模型中,我与profile有一个关系:
public function profile()
{
return $this->hasOne(Profile::class);
}
在纵断面模型中:
public function user()
{
return $this->belongsTo(User::class);
}
现在我必须向配置文件工厂提供数据:
return [
'user_id' => ,
'image' => 'image',
'bio' => $this->faker->sentence,
...
4条答案
按热度按时间falq053o1#
如果您只创建
Profile
,而您已经有了一个对应的User
,那么您可以将user_id
从Profile
工厂中删除,然后使用神奇的方法同时创建这两个Profile
。这将自动创建与用户匹配的配置文件。
或者,如果您确实需要在创建用户之前创建一个配置文件,您可以在工厂中像这样定义
user_id
,User
将由Profile
创建。smtd7mpg2#
vs3odd8k3#
最好的方法是在需要创建虚假配置文件记录时传递
user_id
。在配置文件工厂中:
无论你在哪里需要它:
有关更多信息,您可以阅读Laravel文档的这一部分。
dfty9e194#
应该是您的用户总数。