Я хочу, чтобы удалить все записи из моей базы данных, где дата окончания достигаетсяDateTime comparaison учение QueryBuilder
$em = $this->getEntityManager();
$qb = $em->createQueryBuilder('f');
$qb->delete('AcmeMyBundle:FlowerEntity');
$qb->where($qb->expr()->lte('f.endingDate', ':now'));
$qb->setParameter('now', new \DateTime('now'));
return $qb->getQuery()->getResult();
Я получаю ошибку
[Syntax Error] line 0, col 57: Error: Expected end of string, got 'f'
Я перепробовал много способов, но к сожалению, без особого успеха .. Любые подсказки? Благодаря !
решение, основанное на NHG ответить
$em = $this->getEntityManager();
$qb = $em->createQueryBuilder();
$qb->delete('AcmeMyBundle:FlowerEntity', 'f');
$qb->where($qb->expr()->lte('f.endingDate', ':now'));
$qb->setParameter('now', new \DateTime('now'));
return $qb->getQuery()->getResult();
endDate также является dateTime, как я могу изменить его в строку? я пробовал f.endingDate-> format (..) в запросе, но он заставлял ожидаемый параметр 1 быть объектным логическим (он выглядел настолько грязным, что я не решался попробовать этот LOL) – oligan
@oligan Я обновил свой ответ. – NHG
хороший улов, я тоже обновил свой ответ. thanksss – oligan