Построение запроса в Doctine с незаметным построителем - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь создать этот запрос 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);

Ответы [ 3 ]

0 голосов
/ 25 марта 2019

Я заметил небольшую опечатку.

i.create_at -> i.created_at

И Ренан прав - в вашем утверждении where нет запятой.

0 голосов
/ 25 марта 2019
$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);

это как записать это в репозиторий, точка не нуждается в использовании из оператора и вместо * вы должны использовать здесь псевдоним "i", и вы должны использовать expr в вашем операторе where, ноубедитесь, что поле selected_at - это то, что у вас есть в вашей сущности, а не в базе данных (убедитесь, что в вашей сущности оно создано_at)

0 голосов
/ 25 марта 2019

Я думаю, что у вас есть ошибка в функции -> где.

Правильно:

->where('i.create_at >= 2019-03-01 00:00:00');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...