我有一个数据库,“视图”,包含很多条目。我还有一个“课程”表,这些视图与许多视图相关。在Laravel Nova中,我可以使用以下代码获取课程的所有时间的度量:
public function calculate(Request $request)
{
return $this->countByDays($request, view::where('viewable_id', $request->resourceId));
}
在这种情况下,viewable_id
是课程的ID,而$request->resourceId
提供课程的ID。很简单。
但是,现在事情变得有些困难了。我有另一个名为Teachers
的模型。每个Teacher
可以以一对多的关系开设许多课程。我如何获得一段时间内老师教的所有课程的观看次数指标?
我认为最简单的方法是创建一个包含老师教的所有课程的Laravel集合(效率不高),然后在数据库中选择viewable_id
与其中一门课程匹配的所有视图那个清单。当然,通过发布此内容,我不知道该怎么做。
当然,一旦解决了这个问题,我很乐意为Categories
做同样的事情(尽管它的工作方式与老师完全一样,所以我不需要问这个问题)。
答案 0 :(得分:2)
我如何获得一段时间内老师教的所有课程的观看次数指标?
这应该是视图的“ countByDays”,其中viewable_id在教师教的课程ID列表中。
要实现的SQL查询语句如下:
posix_spawn
口才查询应类似于:
select * from "views"
where "viewable_id" in (select "id" from "courses" where "teacher_id" = ?)