【发布时间】:2012-08-03 11:27:42
【问题描述】:
我一直在尝试在使用 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 是通过在 __construct() 中放置一个漂亮的 die; 来加载的,这意味着自动加载工作正常。
现在在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;
[...]
我在那里缺少什么?感谢您的帮助!
【问题讨论】:
标签: doctrine-orm zend-framework2 doctrine-odm