Laravel выберите из БД, где в коллекции — Laravel Nova

У меня есть БД, «просмотры», со многими, многими записями. У меня также есть таблица «Курсы», с которой связаны эти представления. В Laravel Nova я могу получить метрику всех просмотров за курс с помощью некоторого кода, подобного следующему:

public function calculate(Request $request)
{
return $this->countByDays($request, view::where('viewable_id', $request->resourceId));
}

0

Решение

Как получить метрику мнений по всем курсам, которые преподает учитель?

Это должно быть «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)
)
);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]