2012-10-31 28 views
2

我安裝了Beberlei DoctrineExtensions,但無法讓mysql DAY和YEAR工作。DoctrineExtensions(Beberlei)不起作用 - Doctrine 2

我有這個在我的自動加載磁帶機:

$doctrineExtensions = new Doctrine\Common\ClassLoader('DoctrineExtensions', ROOT.DS.'library'); 
$doctrineExtensions->register(); 

,當我嘗試做以下DQL語句

SELECT YEAR(e.eventdate) FROM \Entities\Event e 

我得到以下錯誤:錯誤:預期已知函數,得到了「YEAR ''在/usr/local/lib/php/Doctrine/ORM/Query/QueryException.php:42

在我的文件頂部我有

use \DoctrineExtensions\Query\Mysql; 

,我可以看到,它可以找到類,如果I型:

$test = \DoctrineExtensions\Query\Mysql\Year::getSql(); 

但如果我鍵入

$test = Year::getSql(); 

好像一些實施失蹤,但無法找到出了什麼問題..

回答

0

您需要註冊該功能:

$classLoader = new \Doctrine\Common\ClassLoader('DoctrineExtensions'); 
$classLoader->register(); 
... 

$config = $this->getEntityManager()->getConfiguration(); 
$config->addCustomDatetimeFunction('YEAR', 'DoctrineExtensions\Query\Mysql\Year');