Symfony 5:Key DATE для массива с ключами NumberProjects, дата не существует

привет, ребята, сейчас я работаю над небольшим проектом, и я чувствую, что я сложен, поэтому в основном я пытаюсь написать новый запрос, чтобы выбрать определенные данные из моей базы данных, я пытаюсь получить проекты, которые создаются в тот же год и месяц. это мой запрос, и он отлично работает в MySql:

SELECT COUNT(id) AS NumberProjects, DATE AS date FROM projects 
 GROUP BY EXTRACT(year FROM DATE),
          EXTRACT(month FROM DATE) ;

но когда дело доходит до symfony, это, конечно, не сработает, и я не знаю, в чем проблема, это моя функция

 /**
     * @return Projects[] Returns an array of Projects objects
     */
    public function findAllArchive():array
    {
        {
            $conn = $this->getEntityManager()->getConnection();

            $sql = 'SELECT COUNT(id) AS NumberProjects, DATE AS date FROM projects 
                    GROUP BY EXTRACT(year FROM DATE),
                             EXTRACT(month FROM DATE) ';
            $stmt = $conn->prepare($sql);
            $stmt->execute();
            return $stmt->fetchAll();
        }

    } 

это моя ветка

 <div class="sidebar-box ftco-animate">
            <h3>Archives</h3>
          <ul class="categories">
            {% for archive in archive %}
              {{ dump(archive.DATE) }}
              <li><a href="{{ path('blog_archive',{'date':archive.DATE|date("F Y")}) }}">{{ archive.DATE|date("F Y", "Europe/Paris") }}<span>{{ archive.total }}</span></a></li>
            {% endfor %}
          </ul>
        </div>

обновить, я попытался с этим, и я получил эту ошибку: [Семантическая ошибка] строка 0, столбец 80 рядом с «ИЗВЛЕЧЕНИЕ (год»: Ошибка: Невозможно сгруппировать по неопределенной идентификации или переменной результата

    public function findAllArchive():array
    {
        {
           $qb=$this->createQueryBuilder('p');
           $qb->select('p.date AS DATE','COUNT(p.id) AS total')

                ->groupBy('EXTRACT(year FROM DATE)');

        }
        return $qb->getQuery()->getResult();
    }
any help pls ! 

person Varus    schedule 29.10.2020    source источник
comment
Можете ли вы опубликовать соответствующий код ветки?   -  person jljohnstone    schedule 30.10.2020
comment
@ jljohnstone, конечно, но я не думаю, что проблема возникла из-за ветки   -  person Varus    schedule 30.10.2020


Ответы (1)


Итак, я понял, ребята, доктрина не знает функции EXTRACT, поэтому я попробовал это, и все работает нормально.

public function findAllArchive():array
{
    {
        $entityManeger=$this->getEntityManager();
        $query=$entityManeger->createQueryBuilder('p')
            ->select('YEAR(p.date) AS gbYear,MONTH(p.date) AS gbMonth, COUNT(p.id) AS total ')
            ->from('App:Projects','p')
            ->groupBy('gbYear')
            ->addGroupBy('gbMonth')
            ;


    }

    return $query->getQuery()->execute() ;

}
person Varus    schedule 30.10.2020