3

Beberlei DoctrineExtensionsをインストールしましたが、mysqlのDAYとYEARを機能させることができません。

私はオートローダーにこれを持っています:

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

そして、私が次のdqlステートメントを実行しようとすると

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

次のエラーが発生します:エラー:既知の関数が必要です。/usr/local/lib/php/Doctrine/ORM/Query/QueryException.php:42で「YEAR」を取得しました

私のファイルの上に私は持っています

use \DoctrineExtensions\Query\Mysql; 

そして、次のように入力すると、クラスが見つかることがわかります。

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

しかし、私がタイプした場合はそうではありません

    $test = Year::getSql();

一部の実装が欠落しているようですが、問題が何であるかを見つけることができません。

4

3 に答える 3

-1

関数を登録する必要があります。

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

$config = $this->getEntityManager()->getConfiguration();
$config->addCustomDatetimeFunction('YEAR', 'DoctrineExtensions\Query\Mysql\Year');
于 2015-11-18T22:11:28.877 に答える