Laravel从数据库中的集合中选择-Laravel Nova

时间:2018-11-08 23:08:14

标签: php laravel laravel-nova

我有一个数据库,“视图”,包含很多条目。我还有一个“课程”表,这些视图与许多视图相关。在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做同样的事情(尽管它的工作方式与老师完全一样,所以我不需要问这个问题)。

1 个答案:

答案 0 :(得分:2)

  

我如何获得一段时间内老师教的所有课程的观看次数指标?

这应该是视图的“ countByDays”,其中viewable_id在教师教的课程ID列表中。

要实现的SQL查询语句如下:

posix_spawn

口才查询应类似于:

select * from "views" 
where "viewable_id" in (select "id" from "courses" where "teacher_id" = ?)