我在Laravel应用程序中有两个模型,联系人和地址彼此相关 .
联系人字段:[id,name]地址字段:[id,address,contact_id]
在Contact模型中,我添加了:
public function address(){
return $this->hasOne(Address::class);
}
在地址模型中,我添加了:
public function contact(){
return $this->belongsTo(Contact::class);
}
我想知道是否可以在函数上交换hasOne和belongsTo,或者它是否违反任何存在的约定 .
喜欢这个联系人字段:[id,name,address_id]地址字段:[id,address]
我问这个的原因是因为我想创建一个在相关表上创建数据的工厂 .
所以我想生成其他相关联系人表的种子,如地址,角色等,并在创建期间获取id .
$factory->define(App\Contact::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'address_id' => factory(App\Address::class)->create()->id,
'other_detail_id' => factory(App\OtherDetail::class)->create()->id
];
});
1 回答
首先,您仍然可以使用当前实施的工厂创建播种机,即
这段代码将被放置在你的播种机中,你将为联系人和地址定义工厂,而播种者将使用渴望的关系来做到这一点 .