YEAR()和beberlei / DoctrineExtensions

时间:2018-10-10 16:38:45

标签: symfony doctrine-orm doctrine doctrine-extensions

我必须使用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

我整个下午都在搜索,但是没有找到解决方法。

谢谢。

enter image description here

3 个答案:

答案 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