【发布时间】:2019-01-29 18:29:03
【问题描述】:
我有一个appointments 表和一个appointment_members 表,我的用户需要能够通过搜索"member_id"(可能是Person、Incident)来获得appointments 的集合或CustomerID。 appointment_members 表有 member_id 和 appointment_id 列,因此 member_type(也是一列)是无关紧要的。这一切都是由以前的开发人员设置的,缺少的是 Eloquent 模型上的关系。我只是创建一个简单的 GET 路由,该路由需要返回该 member_id 的任何/所有约会。每一行都有一个约会,所以如果我要传递一个返回 10 个结果的member_id,有些可能有 appts 而有些则没有,但归根结底,我只需要一组与该 @ 相关的 appts 987654335@。这是appointment_members 表的屏幕截图:
如果我创建一个简单的hasOne 关系到约会成员上的约会:
public function appointments()
{
return $this->HasOne(Appointment::class, 'id', 'appointment_id');
}
我可以得到appointment_members 的集合以及它各自的appointment,但不知道我如何将其归结为只是得到appointments。我的一种解决方法是使用该 HasOne,然后提取/过滤约会:
$appointmentMembers = AppointmentMembers::where('member_id', $request->input('memberId'))->get();
$appointments = $appointmentMembers->pluck('appointments')->filter();
想知道是否有人能找到更好的方法来解决这个问题。谢谢!
【问题讨论】:
标签: laravel laravel-5 eloquent polymorphism laravel-5.4