【发布时间】:2019-05-04 00:36:46
【问题描述】:
我正在开发一个 Laravel 应用程序。我在使用 where 子句查询关联的两个表时遇到问题。这是我的数据库架构。
patients
========
id, name, email, password, created_at
treatments
==========
id, created_at, disease, note, patient_id
treatment_logs
=============
id, status, created_at, treatment_id
我的数据库架构非常简单。现在我想做的是创建一个查询,以获取最后一个treatment_logs状态为1的用户的治疗。这是我的查询
class Patient extends Model {
public function intensiveTreatments()
{
return $this->treatments()->whereHas('treatment_logs', function ($query) {
$query->orderBy('id', 'desc')
->take(1)
->where('status', 1);
});
}
}
该查询的问题在于,处理日志的最后记录状态是什么并不重要。只要有一个状态为1的treatment_logs,它就会返回记录。但我只想获取状态为 1 的最后一个treatment_logs 的记录。如何获取?
【问题讨论】:
标签: laravel eloquent laravel-query-builder