无法使查询构建器正常工作以查找过去 7 天的所有帖子
Having trouble making a query builder work properly for finding all posts from last 7 days
我正在使用 Doctrine 查询生成器来尝试查找过去 7 天内出现的所有事件。这是我的代码:
return $this->createPublishedQueryBuilder('content')
->andWhere('content.date BETWEEN :today AND :sevenDaysAgo')
->setParameter('today', new \DateTime())
->setParameter('sevenDaysAgo', new \DateTime('-7 day'))
->orderBy('content.pageviews.weekly', 'desc')
->setMaxResults($count)
->getQuery()
->getResult();
但它没有返回任何结果。最近添加的行是 andwhere 和下面的两个 setparameter 行,以便添加额外的搜索功能。任何关于正在发生的事情的想法都将不胜感激。
编辑 1:
没有运气切换 :today AND :sevenDaysAgo
这里我也忘了说是日期变量:
/**
* @ORM\Column(type="datetime")
*
* @Serial\SerializedName("publication_date")
* @Serial\Type("DateTime<'Y-m-d'>")
* @Serial\Groups({"list", "fixture", "detail", "email"})
*
* @Assert\Date()
*
* @var DateTime
*/
protected $date;
我建议使用高于方法而不是使用中间查询。
return $this->createPublishedQueryBuilder('content')
->andWhere('content.date > :sevenDaysAgo')
->setParameter('sevenDaysAgo', new \DateTime('-7 day'))
->orderBy('content.pageviews.weekly', 'desc')
->setMaxResults($count)
->getQuery()
->getResult();
否则我没有发现您的查询有误。我想 "createPublishedQueryBuilder" 是有意的,是 "createQueryBuilder" ?
的抽象形式
我正在使用 Doctrine 查询生成器来尝试查找过去 7 天内出现的所有事件。这是我的代码:
return $this->createPublishedQueryBuilder('content')
->andWhere('content.date BETWEEN :today AND :sevenDaysAgo')
->setParameter('today', new \DateTime())
->setParameter('sevenDaysAgo', new \DateTime('-7 day'))
->orderBy('content.pageviews.weekly', 'desc')
->setMaxResults($count)
->getQuery()
->getResult();
但它没有返回任何结果。最近添加的行是 andwhere 和下面的两个 setparameter 行,以便添加额外的搜索功能。任何关于正在发生的事情的想法都将不胜感激。
编辑 1: 没有运气切换 :today AND :sevenDaysAgo
这里我也忘了说是日期变量:
/**
* @ORM\Column(type="datetime")
*
* @Serial\SerializedName("publication_date")
* @Serial\Type("DateTime<'Y-m-d'>")
* @Serial\Groups({"list", "fixture", "detail", "email"})
*
* @Assert\Date()
*
* @var DateTime
*/
protected $date;
我建议使用高于方法而不是使用中间查询。
return $this->createPublishedQueryBuilder('content')
->andWhere('content.date > :sevenDaysAgo')
->setParameter('sevenDaysAgo', new \DateTime('-7 day'))
->orderBy('content.pageviews.weekly', 'desc')
->setMaxResults($count)
->getQuery()
->getResult();
否则我没有发现您的查询有误。我想 "createPublishedQueryBuilder" 是有意的,是 "createQueryBuilder" ?
的抽象形式