如何使用Zend Framework 2在Doctrine 2中添加自定义DQL函数

时间:2013-10-01 15:27:39

标签: doctrine-orm zend-framework2 dql

问题几乎在于标题。我已经阅读了docs,而我无法找到的是如何将该功能注册到我的ORM配置中。

这里有什么帮助吗?谢谢!

编辑:好的,我已经按照山姆的说法完成了这项工作,并创建了自己的课程并将其注册为

            'numeric_functions' => array(
                'LOG10'  => 'Admin\Model\Log10',
            ),

然而,它找不到类并给出错误

  

在第3322行的C:\ webserver \ apache \ htdocs \ test \ vendor \ doctrine \ orm \ lib \ Doctrine \ ORM \ Query \ Parser.php中找不到类'Admin \ Model \ Log10'

有关为何会发生这种情况的任何想法吗?

2 个答案:

答案 0 :(得分:10)

实际上,@ foozy给你的链接就是你所需要的。您只需扩展doctrine配置数组:

return array(
    'doctrine' => array(
        'connection'    => array(
            'orm_default' => array(
                // Foo
            )
        ),
        'configuration' => array(
            'orm_default' => array(
                'numeric_functions' => array(
                    'MD5'  => 'DoctrineExtensions\Query\Mysql\Md5'
                ),
                'datetime_functions' => array(),
                'string_functions'   => array(),
                'metadata_cache'     => 'filesystem',
                'query_cache'        => 'filesystem',
                'result_cache'       => 'filesystem',
            )
        )
    )
);

答案 1 :(得分:0)

错误与DoctrineExtensions自动加载相关联。对我来说,来自How to implement beberlei doctrine extensions in zend framework 2的两个解决方案(手动注入自定义函数和通过配置应用)都有效。