我必须使用YEAR进行请求,并使用doctrine命令安装了beberlei / DoctrineExtensions。我添加了请求的注释
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
,但它不起作用,出现此错误:
试图从名称空间加载类“ Year” “ DoctrineExtensions \ Query \ Mysql”。您是否忘记了“使用”声明 另一个名称空间?
请求:
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 :(得分: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
答案 1 :(得分:0)
对我来说,删除供应商目录并重新安装作曲家即可解决问题。
答案 2 :(得分:0)
在查询中将“年份”替换为“年份”
请改用以下代码:
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:要知道在原理配置中正确添加功能所要使用的链接,您必须继续进行this link