错误:预期的Doctrine \ ORM \ Query \ Lexer :: T_CLOSE_PARENTHESIS,得到','

时间:2014-11-28 11:39:32

标签: symfony doctrine-orm doctrine-extensions

我正在使用SYmfony中的Doctrine构建一个复杂的SQL查询,它涉及连接到多个表。

作为上述SQL查询的一部分,我需要使用GROUP_CONCAT,希望我碰到了这个可用的扩展名:https://github.com/beberlei/DoctrineExtensions/blob/master/lib/DoctrineExtensions/Query/Mysql/GroupConcat.php,我在MyBundle \ Resources \ DoctrineExtensions下放了这个扩展名,我也在我的配置中注册了它。 yml,例如:

doctrine:
     ####
orm:
      ###
    entity_managers:
        default:

            dql:
                string_functions:
                                GROUP_CONCAT:  MyBundle\Resources\DoctrineExtensions\GroupConcat

在我的班级中,我用以下方式初始化扩展名:

    $parameterRepo  = $this->em->getRepository('MyBundle:Parameter');
    $classLoader = new \Doctrine\Common\ClassLoader('DoctrineExtensions', "MyBundle/Resources/DoctrineExtensions");
    $classLoader->register();

    $config = new \Doctrine\ORM\Configuration();
    $config->addCustomStringFunction('GROUP_CONCAT', 'MyBundle/Resources/DoctrineExtensions');

但是,当我运行此查询时:

$qb->select("
                l.identifier,
                ct.fooName,
                ct.fooShortname,
                GROUP_CONCAT(p.field, ':', cp.parameterValue) as params,
                ct.section,
                p.field
               ")
        ->innerJoin('####')
        ->innerJoin('###')
        ->leftJoin('###')
        ->groupBy('###);

我收到以下错误:

[Syntax Error] line 0, col 167: Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got ','

这是扩展程序的错误还是我遗漏了什么? 我怎么能继续这样做?谢谢。

0 个答案:

没有答案