ГОД () и 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: чтобы узнать, какую ссылку вы должны использовать для правильного добавления функции в конфигурацию доктрины, вам нужно перейти по этой ссылке
Для меня удаление каталога поставщика и установка нового композитора решила проблему.