所以我有一个名为“服务”的实体,用户可以在该实体上报告他们的日期,另一个实体称为访问,其中包含当天用户所拥有的个人访问的报告信息。它是一对多的关系。一种形式到多次访问。
表单有日期 访问有访问开始和停止时间。
我正在尝试创建一个报告,显示当月创建的每个表单,首先是form.date,然后是visit.startTime。但对于我的生活,我无法弄清楚这一点。也许我在思考它。
我通过创建一个Twig过滤器来查找具有多次访问权限的表单,该过滤器通过startTime对访问进行排序..但这并不是一个好方法。我确定它需要是在存储库中完成,但我不能为我的生活弄清楚如何让它工作。
有些人可能会提供一些关于如何编写查询构建器的建议吗?
答案 0 :(得分:2)
您可以通过多种方式执行此操作,但最好在查询数据库时进行排序。您可以使用Doctrine\ORM\QueryBuilder
从数据库中检索数据。例如:
// ServiceRepository
public function getServicesWithVisists() {
$builder = $this->createQueryBuilder('s');
$builder->select('s', 'v')
->leftJoin('s.visits', 'v')
->orderBy('s.date', 'ASC')
->addOrderBy('v.startTime', 'ASC');
return $builder->getQuery()->getResult();
}