我有一个牙医平台,可以与用户约会

我想知道是否有可能根据约会数据获取该牙医的患者列表。

这是我的约会表布局

+------------+------------+------------+
| 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/

10-16 07:11