【问题标题】:How to add a custom DQL function in Doctrine 2 using Zend Framework 2如何使用 Zend Framework 2 在 Doctrine 2 中添加自定义 DQL 函数
【发布时间】:2013-10-01 15:27:38
【问题描述】:

好吧,问题几乎在于标题。我已经阅读了docs,但我不知道如何将函数注册到我的 ORM 配置中。

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

编辑:好的,我已经按照 Sam 说的做了,并且创建了我自己的课程并像这样注册了它

            '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'

知道为什么会这样吗?

【问题讨论】:

  • 我认为您所需要的都记录在这里:doctrine-project.org/blog/doctrine2-custom-dql-udfs.html
  • 是的,那是文档,我在帖子中也有链接,但是我需要让它在 ZF2 中工作,我找不到如何在配置中注册该函数,因为我我在帖子里说。
  • 我已经看过很多次文档了,但我猜还是不够……谢谢!

标签: doctrine-orm zend-framework2 dql


【解决方案1】:

实际上,@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',
            )
        )
    )
);

【讨论】:

  • 非常感谢,如果您可以查看我对原始帖子的编辑:)
  • @Systemfreak 听起来像是自动加载问题。您可以直接从任何控制器访问该类吗?
  • 呃,我似乎在类名中有错字。顺便说一句,你似乎知道一些关于 ZF2 的东西,请问我是否还有其他问题不方便? :)
  • @Systemfreak 简短回答:是的;)只需在 StackOverflow 上发布问题,您就会找到所需的帮助。如果我想帮忙,无论如何你都会收到我的回复...
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 1970-01-01
    • 2013-06-21
    • 2014-09-06
    相关资源
    最近更新 更多