试图从命名空间“DoctrineExtensions\Query\Mysql”加载类“Month”。您是否忘记了另一个命名空间的“use”语句

Kah*_*kle 6 php doctrine symfony

Attempted to load class "Month" from namespace "DoctrineExtensions\Query\Mysql". Did you forget a "use" statement for another namespace当我尝试创建按年和月获取数据的查询时出现错误

在我的存储库中

 public function getCongePris($mois,$annee,$matricule)
    {
        $emConfig = $this->_em->getConfiguration();
        $emConfig->addCustomDatetimeFunction('YEAR', 'DoctrineExtensions\Query\Mysql\Year');
        $emConfig->addCustomDatetimeFunction('MONTH', 'DoctrineExtensions\Query\Mysql\Month');

        $qb = $this->createQueryBuilder('co')->leftJoin('co.personnel','p');
        $qb->select('co')
            ->where('p.matricule= :matricule')->andWhere('co.statutDemande=:statut ')
            ->andWhere('MONTH( co.debutConge)=:mois')->andWhere('YEAR(co.debutConge)=:annee');

        $qb->setParameter('annee',$annee)->setParameter('mois',$mois)->setParameter('matricule',$matricule)->setParameter('statut','ACCEPTE');

        $conges = $qb->getQuery()->getResult();
        return $conges;
    }
Run Code Online (Sandbox Code Playgroud)

在我的 config.yml 里面

orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    naming_strategy: doctrine.orm.naming_strategy.underscore
    auto_mapping: true
        dql:
            string_functions:
                MONTH: DoctrineExtensions\Query\Mysql\Month
                YEAR: DoctrineExtensions\Query\Mysql\Year
Run Code Online (Sandbox Code Playgroud)

Hel*_*der 11

您必须安装扩展,它会将所需的类添加到 Symfony。

这个包应该可以完成这项工作:https : //github.com/beberlei/DoctrineExtensions

composer require beberlei/DoctrineExtensions
Run Code Online (Sandbox Code Playgroud)