【问题标题】:YEAR() and beberlei/DoctrineExtensionsYEAR() 和 beberlei/DoctrineExtensions
【发布时间】:2018-10-10 16:38:44
【问题描述】:

我必须使用 YEAR 提出请求,并且我使用教义命令安装了 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

【问题讨论】:

  • 你有没有使用composer require beberlei/DoctrineExtensions命令安装beberlei/DoctrineExtensions
  • 是的,我做到了,但它不起作用
  • 您能否检查一下将“datetime_functions”更改为“string_functions”
  • 我对“string_functions”有同样的错误。
  • 您能添加粘贴您的查询吗?

标签: symfony doctrine-orm doctrine doctrine-extensions


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    对我来说,删除供应商目录并重新安装 composer 解决了这个问题。

    【讨论】:

      【解决方案3】:

      在查询中将“年份”替换为“年份”

      所以请改用以下代码:

      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

      【讨论】:

        猜你喜欢
        • 2012-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-30
        相关资源
        最近更新 更多