Создание запроса в Doctine с помощью тихого конструктора

Я пытаюсь создать этот запрос 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 25.03.2019 17:46

какая часть @Script47

Chris 25.03.2019 17:48
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
58
3

Ответы 3

Я думаю, что у вас есть ошибка в функции ->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 )

Другие вопросы по теме