Я пытаюсь встроить этот SQL-запрос в построитель запросов, но при добавлении объединения оно прерывается.Если я снимаю «Присоединиться», это работает, но в «Присоединении» есть элементы, к которым хотелось бы иметь доступ.
Я пробовал разные способы использования построителя запросов, я прочитал документацию и следую его инструкциям, но она не работает.
Вот мой SQL-запрос
SELECT * FROM invoice i
JOIN item it
WHERE i.created_at >= '2019-03-26 08:00:00' and
i.created_at <= '2019-03-26 08:05:00' and i.status=2;
Вот мой конструктор запросов внутри Symfony.
/** @var \Doctrine\ORM\EntityManager $em *
$em = $container->get('doctrine')->getManager();
$em->getConnection()->getConfiguration()->setSQLLogger(null);
/** @var EntityRepository $repository */
$repository = $em->getRepository('GivingBundle:Invoice');
/** @var QueryBuilder $qb */
$qb = $repository->createQueryBuilder('i');
$qb->join('i.item', 'it')
->Where($qb->expr()->between('i.created_at', ':starts_at', ':ends_at'))->andWhere('i.status = 1')
->setParameter('starts_at',$startsAt,\Doctrine\DBAL\Types\Type::DATETIME)
->setParameter('ends_at', $endsAt,\Doctrine\DBAL\Types\Type::DATETIME)
;
$query = $qb->getQuery();
$results = $query->getResult();
Однако я получаю сообщение об ошибке (ниже)
Doctrine\ORM\Query\QueryException]
[Semantical Error] line 0, col 66 near 'it WHERE (i.created_at':
Error: Class KCM\GivingBundle\Entity\Invoice has no association
named item
То, что я хотел бы сделать, это выбрать базу данных таблицы счетов-фактур вместе с таблицей товаров, чтобы я мог получить доступ к обоим ее свойствам.Я пытаюсь создать команду Symfony, которая запускает SQL-запрос, сообщает о результатах для элементов со статусом 2 и, в конце концов, добавляет ее в виде cronjob.