我有一个牙医平台,可以与用户约会
我想知道是否有可能根据约会数据获取该牙医的患者列表。
这是我的约会表布局
+------------+------------+------------+
| patient_id | dentist_id | date |
+------------+------------+------------+
| 1 | 2 | 12/02/2017 |
| 1 | 2 | 13/02/2017 |
| 2 | 2 | 10/02/2017 |
+------------+------------+------------+
可以用foreach来完成,并用结果填充数组并检查唯一性,但是应该有一种更优雅的方法,对吗?
对我而言,更困难的是我应该能够看到每个患者的上次约会日期。
更新资料
由于答案中的代码,以下内容可以正常工作。但这似乎很奇怪吗?
{{ $patient->appointments()->where('dentist_id', Auth::user()->dentist->id)->orderBy('date', 'desc')->first()->date }}
最佳答案
您可以使用collections确保您的数据是唯一的。
如果您雄辩的模型关系正确设置,则可以执行以下操作:
<?php
$patients = $dentist->appointments()
->with('patient')
->get()
->pluck('patient')
->unique('id');
该查询将加载所有约会和相应的患者。您从集合中pluck患者,并确保所有患者都具有unique
id
。关于php - Eloquent 地在约会表中获得唯一的Patient_id的列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42278086/