【发布时间】:2021-05-04 11:12:03
【问题描述】:
我有一个关于 Laravel Eloquent Relations 的问题。
我的表情况如下:
表guests:
- 身份证
- 姓名
- ...
表landing_pages:
- 身份证
- 姓名
- ...
一位客人可以有多个登录页面。一个登陆页面将有多个客人。
所以我想,我可以在那里使用many-to-many 关系并创建一个新表
表guests_landing_pages:
- 身份证
- guest_id
- landing_page_id
- ...
我可以通过以下方式使用它:
在guest 模型中我可以这样做,创建many-to-many 关系:
public function landing_pages()
{
return $this->belongsToMany(\App\Models\LandingPage\LandingPage::class, 'guests_landing_pages','landing_page_id','guest_id');
}
... 在landing_page 模型中反之。
但实际上表guests_landing_pages 包含的数据不仅仅是guest_id 和landing_page_id 关系。
其中还有其他几个字段:
表guests_landing_pages:
- 身份证
- guest_id
- landing_page_id
- identifier_token
- 最大人数
- 回答
- ...
我现在的问题是,我怎样才能最好地实现这一点。如果我如上所述使用many-to-many 关系,我将无法访问中间表中的字段,不是吗?
或者最好的解决方案是创建一个包含所有字段的GuestLandingPages 模型并在两者之间创建hasMany 关系?
【问题讨论】:
标签: laravel eloquent many-to-many laravel-8