ГОД () и beberlei/DoctrineExtensions

Я должен делать запросы с ГОДОМ, и я установил beberlei/DoctrineExtensions с командой doctrine. Я добавил запрошенные аннотации

doctrine:
   orm:
        auto_generate_proxy_classes: '%kernel.debug%'
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        dql:
            datetime_functions:
                year: DoctrineExtensions\Query\Mysql\Year

, но это не работает, у меня есть эта ошибка:

Попытка загрузить класс "Год" из пространства имен "DoctrineExtensions\Query\Mysql". Вы забыли оператор use для другого пространства имен?

Запрос:

public function groupTypeInterArray(){
    $qb = $this->createQueryBuilder('i')
            ->select('YEAR(i.interventionDate)');
    return $qb->getQuery()->execute();
}

Конфиг Доктрина

# Doctrine Configuration
doctrine:
    dbal:
        driver: pdo_mysql
        host: '%database_host%'
        port: '%database_port%'
        dbname: '%database_name%'
        user: '%database_user%'
        password: '%database_password%'
        charset: UTF8
        # if using pdo_sqlite as your database driver:
        #   1. add the path in parameters.yml
        #     e.g. database_path: '%kernel.project_dir%/var/data/data.sqlite'
        #   2. Uncomment database_path in parameters.yml.dist
        #   3. Uncomment next line:
        #path: '%database_path%'

    orm:
        auto_generate_proxy_classes: '%kernel.debug%'
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        dql:
            datetime_functions:
                Year: DoctrineExtensions\Query\Mysql\Year

Я искал весь день, но не нашел решения.

Заранее спасибо.

введите описание изображения здесь

0 ответов

1.dql: datetime_functions: year: DoctrineExtensions\Query\Mysql\Year ???

2.dql: datetime_functions: Year: DoctrineExtensions\Query\Mysql\Year ???

Может быть dql: datetime_functions: YEAR: DoctrineExtensions\Query\Mysql\Year MONTH: DoctrineExtensions\Query\Mysql\Month DAY: DoctrineExtensions\Query\Mysql\Day

В запросе замените "Год" на "год"

поэтому используйте вместо этого следующий код:

public function groupTypeInterArray(){
    $qb = $this->createQueryBuilder('i')
            ->select('year(i.interventionDate)');
    return $qb->getQuery()->execute();
}

и вам также необходимо изменить соответствующую строку в конфигурации доктрины:

заменяет этот код

Year: DoctrineExtensions\Query\Mysql\Year

По этому коду

year: DoctrineExtensions\Query\Mysql\Year

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

Для меня удаление каталога поставщика и установка нового композитора решила проблему.

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