我有3个实体:
机构&分支将有许多地址,因此为了不创建两个子模型来存储每个实体的地址,我想创建一个数据透视表,它将这些列作为主键:entity_id,address_id,entity_name。通过这种方法,我将存储机构和分支的所有地址的关系。
这是我在entities_addresses透视表中的代码
Schema::create('entities_addresses', function (Blueprint $table) {
$table->integer('entity_id')->unsigned();
$table->integer('address_id')->unsigned();
$table->string('model_name', 50);
$table->primary(['entity_id','address_id','model_name']);
接下来,在地址模型中,我有以下代码:
public function institutions()
{
return $this->belongsToMany(Institution::class, 'entities_addresses', 'entity_id', 'address_id');
}
接下来,在Institution模型中,我有以下代码
public function buildings()
{
return $this->hasMany(Building::class);
}
我相信我需要在其他地方添加" custom"关系,因为我现在收到此错误:SQLSTATE [42S22]:找不到列:1054未知列' addresses.institution_id'
所以,我的问题是:
此致