2013-10-01 1 views
1

Ну, вопрос в значительной степени заключается в названии. Я прочитал docs, и я не могу узнать, как зарегистрировать функцию в моей конфигурации ORM.Как добавить пользовательскую функцию DQL в Doctrine 2 с помощью Zend Framework 2

Любая помощь здесь? Благодаря!

Edit: Хорошо я сделал это, как сказал Сэм, и сделал свой собственный класс и зарегистрировал его как

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

Однако он не может найти класс и дает ошибку

Class 'Admin \ Model \ Log10' не найден в каталоге C: \ вебсервер \ Apache \ HTDOCS \ тест \ поставщика \ доктриной \ ORM \ Lib \ Doctrine \ ORM \ Query \ Parser.php на линии 3322

Любая идея почему это происходит?

+0

Я думаю, что все, что вам нужно, задокументировано здесь: http://www.doctrine-project.org/blog/doctrine2-custom-dql-udfs.html – edigu

+0

Да, это документ, я его связал и в сообщении , однако мне нужно заставить его работать в ZF2, и я не могу найти, как зарегистрировать функцию в конфиге, как я говорю в своем сообщении. – Systemfreak

+0

Я видел документы столько раз, но все же недостаточно, я думаю .. спасибо! – Systemfreak

ответ

9

На самом деле ссылка, которую @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', 
      ) 
     ) 
    ) 
); 
+0

Ty очень, если вы можете проверить мое редактирование на исходном сообщении :) – Systemfreak

+0

@Systemfreak Звучит как проблема с автозагрузкой. Вы можете получить доступ к классу с любого контроллера напрямую? – Sam

+0

Ух, у меня была опечатка в названии класса, как казалось. Кстати, вы, кажется, знаете что-то на ZF2, неудобно ли вам спрашивать, есть ли у меня какая-то другая проблема? :) – Systemfreak

Смежные вопросы