使用“Doctrine Query”构建器根据一周中的特定日期返回日期

时间:2015-07-30 21:18:43

标签: doctrine-orm query-builder

我有一张包含日期列表的表格,我想重新运行 n 日期大于 x-date 且该日期落在星期二

以下是清单:

2015:07:31 - Fri
2015:08:04 - Tue
2015:08:07 - Fri
2015:08:11 - Tue
2015:08:14 - Fri
2015:08:18 - Tue
2015:08:21 - Fri
2015:08:25 - Tue
2015:08:28 - Fri
2015:09:01 - Tue
2015:09:04 - Fri
2015:09:08 - Tue
2015:09:11 - Fri
2015:09:15 - Tue
2015:09:18 - Fri
2015:09:22 - Tue
2015:09:25 - Fri
2015:09:29 - Tue
2015:10:02 - Fri
2015:10:06 - Tue

返回上述列表的代码是:

$days  = $this->repository->createQueryBuilder('u')
        ->where( 'u.someId = :someObject' )
        ->andHaving( 'u.thisDate >= :x-date')
        ->setMaxResults($n)
        ->setParameter('x-date',$x-date)
        ->setParameter('someObject',$someObject)
        ->getQuery()

我需要在查询中更新哪些内容才能返回星期二的日期?

1 个答案:

答案 0 :(得分:0)

我的要求比我最初的预期要复杂得多。我选择不使用扩展,因为从长远来看,它没有什么好处。

我的步骤如下:

  1. 从表中获取数据
  2. 删除不需要的行
  3. 验证每一行
  4. 返回最终结果
  5. 幸运的是,这不是常规电话,因此不会对最终用户产生明显影响。但是,当我有几个想法帮助我考虑更好的设计方法时,我已经指定了重构代码。