Доктрина Symfony «Примечание: смещение неинициализированной строки: 0» - PullRequest
0 голосов
/ 11 ноября 2019

Я получаю необъяснимое для меня сообщение «Уведомление: смещение неинициализированной строки: 0». Любая помощь приветствуется. Подробности ниже:

Ручной запрос к базе данных (работает - 1635 - только один пример):


SELECT DISTINCT(loc) FROM `post` WHERE author = ANY ( SELECT DISTINCT(author) FROM `post` WHERE loc=1635 );

Репозиторий в Symfony - запрос приводит к «Примечание: смещение неинициализированной строки:0 "


    $qb2 = $this->createQueryBuilder('p')
      ->select('DISTINCT (p.loc)')
      ->Where('DATE_SUB(CURRENT_DATE(),  :timePer, \'day\') < p.publishedAt')
      ->andWhere('p.author = ANY ( SELECT DISTINCT(p.author) FROM \`post\` WHERE p.loc = :ccc )')
      ->setParameter('timePer', $timePeriodDays)
      ->setParameter('ccc', $passed_ccc)
      ->getQuery();


    $lResult =  $qb2->execute();
    return $lResult;

1 Ответ

0 голосов
/ 11 ноября 2019

Логика, похоже, не совпадает в вашем запросе dql и простом sql. Запрос dql (без временной части) будет преобразован в следующий простой sql:

SELECT DISTINCT(p.loc) FROM `post` p WHERE p.author = ANY ( SELECT DISTINCT(p.author) FROM `post` p1 WHERE p.loc=1635 );

Кроме того, построитель запросов смешивает dql и sql, которые не работают (при использовании имени таблицы вместо имени объекта дляболее конкретно). Вы можете попробовать использовать приведенную ниже обновленную версию (замените «YourBundle: Post» на фактический пакет: имена сущностей):

$qb2 = $this->createQueryBuilder('p')
    ->select('DISTINCT (p.loc)')
    ->Where('DATE_SUB(CURRENT_DATE(),  :timePer, \'day\') < p.publishedAt')
    ->andWhere('p.author = ANY ( SELECT DISTINCT(p1.author) FROM YourBundle:Post p1 WHERE p1.loc = :ccc )')
    ->setParameter('timePer', $timePeriodDays)
    ->setParameter('ccc', $passed_ccc)
    ->getQuery();

$lResult =  $qb2->execute();
return $lResult;

в качестве дополнительной заметки, если вы по-прежнему сталкиваетесь с той же ошибкой, что и изначально, с этимНе могли бы вы вывести параметры, которые вы используете в этом запросе.

...