【发布时间】:2022-12-09 04:11:17
【问题描述】:
所以我有一个包含 created_at 和外键 student_id 和 status_id 的多对多表。
对于每个学生,我只想在最新的一个有 status_id = 1 的情况下检索一个条目。
我这样试过:(这是一个查询链,在这种情况下 $query 将是 Student::where(something else))
$query->whereHas('statusuri', function($query) use ($statusuri) {
$query->latest('status_student.created_at')->where('status_id', 1);
});
(statusuri 是多对多关系)
但我得到的结果与我需要的不同。
它首先执行 where 子句,然后执行 latest()。基本上,它检索与 where 匹配的最后一个条目。
我想搜索每个学生,最新条目,如果 where 子句匹配,则获取该条目。如果没有,请不要返回任何东西。
Eloquent 可以做到吗?
谢谢。
【问题讨论】:
-
尝试将
latest移出闭包 -
你介意展示你的想法吗?