У меня есть БД, «просмотры», со многими, многими записями. У меня также есть таблица «Курсы», с которой связаны эти представления. В Laravel Nova я могу получить метрику всех просмотров за курс с помощью некоторого кода, подобного следующему:
public function calculate(Request $request)
{
return $this->countByDays($request, view::where('viewable_id', $request->resourceId));
}
Как получить метрику мнений по всем курсам, которые преподает учитель?
Это должно быть «countByDays» представлений, где viewable_id находится в списке идентификаторов курсов, которым учит учитель.
Инструкция SQL-запроса для достижения этой цели приведена ниже:
select * from "views"where "viewable_id" in (select "id" from "courses" where "teacher_id" = ?)
Запрос Eloquent должен быть похож на:
$this->countByDays($request,
view::whereIn(
'viewable_id',
Course::with('teacher')
->select('id')
->where('teacher_id', $request->resourceId)
)
);
Других решений пока нет …