使用Symfony 2.4在Doctrine2中使用YEAR()和MONTH()

时间:2014-09-10 12:57:52

标签: mysql doctrine-orm symfony-2.4

我刚刚安装了StofDoctrineExtensionsBundle来使用SQL函数MONTH()和YEAR(),但我一直收到此错误:

尝试加载课程"月"来自命名空间" DoctrineExtensions \ Query \ Mysql"在/var/www/symfony/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php第3389行。你需要"使用"它来自另一个名称空间?

在我的控制器中我有这个:

$dql = "SELECT x FROM PFCFisiogestBundle:FacturaEmitida x WHERE MONTH(x.fecha) BETWEEN '".$mes_inicio."' AND '".$mes_fin."' 
                AND YEAR(x.fecha) = '".$ano."' ORDER BY x.numero DESC";
$queryDefault = $em->createQuery($dql);

在config.yml

doctrine:
    dbal:
        driver:   "%database_driver%"
        host:     "%database_host%"
        port:     "%database_port%"
        dbname:   "%database_name%"
        user:     "%database_user%"
        password: "%database_password%"
        charset:  UTF8

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: true
        dql:
            string_functions:
                MONTH: DoctrineExtensions\Query\Mysql\Month
                YEAR: DoctrineExtensions\Query\Mysql\Year

我错过了什么? : - (

1 个答案:

答案 0 :(得分:2)

该捆绑包是行为主义扩展的sf2包装器,与您的情况不同

试试这个orocrm/doctrine-extensions ..它也支持MySQL和Postgres ......将来应该支持其他DBMS