Учение Symfony 4 создает QueryBuilder с помощью andWhere - PullRequest
0 голосов
/ 03 ноября 2019

Мне нужна помощь с Symfony 4 и Doctrine (Repository) для начинающих.

В моем методе findChildrenValidAndNotExpired я пытаюсь получить дочерние статьи категории. Это дает мне все связанные статьи в категории, но 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();
}
...