我有一个表clients
和一个表contracts
。在我的Client
模型中我有
public function contract()
{
return $this->hasOne(
'AppModelsContract',
'client_id',
'id'
);
}
我不想在我的数据库中有任何没有合同的客户端。当我为我的客户端播种时,使用带有伪造数据的工厂,我想创建使用合同上的外键user_id映射到客户端的合同。
确保为每个表创建一个工厂,然后您可以简单地执行如下操作
Client::factory()
->count(3)
->has(Contract::factory()->forUser()->create())
->create();
注意:检查你的模型中的关系,然后它应该是好的:)
我就是这么做的:
AppModelsClient::factory(10)->create()->each(function ($client) {
$client->contract()->save(Contract::factory()->make());
});