在ZF2 RC中找不到Doctrine 2 Mongo ODM的gedmo注释

时间:2012-08-06 13:24:22

标签: doctrine-orm zend-framework2 doctrine-odm

我一直在尝试在使用MongoDB的ZF2 RC2应用程序上使用gedmo sluggable behavior用于Doctrine2,但总是会出现错误,说明Doctrine无法找到注释,即使它的监听器已经入侵该事件管理器在配置文件中。

以下是我得到的确切错误消息:

[Semantical Error] The annotation "@Gedmo\Mapping\Annotation\Slug" in property Application\Document\Place::$login does not exist, or could not be auto-loaded.

我的module.doctrine-mongo-odm.local.php文件包含有关此问题的以下内容:

[...]
'eventmanager' => array(
    'odm_default' => array(
        'subscribers' => array(
            'Gedmo\Sluggable\SluggableListener'
        )
    )
),
[...]

我知道只需在SluggableListener中添加一个漂亮的die;即可加载__construct(),这意味着自动加载功能正常运行。

现在在Place文档中,我通过注释使用login属性上的slug:

<?php
namespace Application\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM
 ,  Gedmo\Mapping\Annotation as Gedmo;


/** @ODM\Document(collection="places") */
class Place
{
[...]
/**
 * @ODM\String
 * @Gedmo\Slug(fields={name})
 */
private $login;

/** @ODM\String */
private $name;
[...]

我在那里错过了什么?谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

您需要注册任何额外的注释,而不仅仅是添加侦听器。在Mongo模块配置中使用以下键:

'configuration' => array(
    'odm_default' => array(
        'annotations'        => array(), // array('Annotation\Namespace\' => '/../annotation/path')
    )
),
相关问题