Я пытаюсь создать этот запрос mysql в построителе запросов в Doctrine, но у меня возникают проблемы. Вот мой запрос mysql
SELECT * FROM invoice i WHERE i.created_at >='2019-03-01 00:00:00';
Вот что у меня есть для построителя запросов. Может ли кто-нибудь заметить, что я делаю неправильно?
$qb = $em->createQueryBuilder('i');
$qb->select('*')
->from('invoice', 'i')
->where('i.create_at >=','2019-03-01 00:00:00');
$query = $this->$qb->getQuery();
$results = $this->$query->getResult();
$output->writeln($this->$results);
какая часть @Script47






Я думаю, что у вас есть ошибка в функции ->where.
Правильно:
->where('i.create_at >= 2019-03-01 00:00:00');
Я замечаю небольшую опечатку.
i.create_at -> i.created_at
И Ренан прав - запятая не нужна в вашем утверждении where.
$qb = $this->createQueryBuilder('i');
$qb->select('i')
->where($qb->expr()->gte('i.create_at',':date'))
->setParameter('date',new \DateTime('2019-03-01
00:00:00'));
$results = $qb->getQuery()->getResult();
$output->writeln($results);
это как записать его в репозиторий, суть в том, что нет необходимости использовать оператор from, и вместо * вы должны использовать псевдоним, который здесь «i», и вы должны использовать expr в вашем операторе where, но убедитесь, что поле created_at что у вас есть в вашей сущности, а не в сопоставлении с базой данных (убедитесь, что в вашей сущности это created_at )
Почему вы используете псевдоним, когда в вашем текущем запросе нет необходимости?