Php 带andWhere的symfony 4条令createQueryBuilder

Php 带andWhere的symfony 4条令createQueryBuilder,php,symfony,doctrine,where-clause,Php,Symfony,Doctrine,Where Clause,我需要帮助与symfony4和条令(存储库)为初学者 在我的FindChildrenValid和NotExpired方法中,我正在尝试获取儿童类别的文章。 这给了我所有相关的文章类别,但addWhere并没有过滤任何东西。显示无效和过期的物品 public function findAllValidAndNotExpired($max_results = false) { $now = date("Y-m-d H:i:s"); $qb = $this->

我需要帮助与symfony4和条令(存储库)为初学者

在我的FindChildrenValid和NotExpired方法中,我正在尝试获取儿童类别的文章。 这给了我所有相关的文章类别,但addWhere并没有过滤任何东西。显示无效和过期的物品

public function findAllValidAndNotExpired($max_results = false) {

        $now = date("Y-m-d H:i:s");

        $qb = $this->createQueryBuilder('c')
            ->innerJoin('c.articles', 'a')
            ->addSelect('a')
            ->andWhere('a.valid = :valid')
            ->andWhere('a.date_expired_from IS NULL OR a.date_expired_from < :now')
            ->andWhere('a.date_expired_to IS NULL OR a.date_expired_to > :now')
            ->setParameter('valid', '1')
            ->setParameter('now', $now)
        ;

        $query = $qb->getQuery();

        return $query->execute();
}
公共函数findAllValidAndNotExpired($max\u results=false){
$now=日期(“Y-m-d H:i:s”);
$qb=$this->createQueryBuilder('c')
->innerJoin('c.articles','a')
->addSelect('a')
->andWhere('a.valid=:valid')
->andWhere('a.date\u expired\u from'为空或a.date\u expired\u from<:now')
->andWhere('a.date\u expired\u to'为空或a.date\u expired\u to>:now')
->setParameter('valid','1')
->setParameter('now',$now)
;
$query=$qb->getQuery();
返回$query->execute();
}

try
return$qb->getQuery()->getResult()您的查询也有不必要的参数,因为valid始终为1和:now可以替换为CURRENT_TIMESTAMP()或CURRENT_DATE(),以防您不想比较时间而只想比较日期。