我一直在尝试在使用 MongoDB 的 ZF2 RC2 应用程序上使用 Doctrine2 的gedmo sluggable 行为,但总是以错误告终,说 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
文档中,我通过注释使用属性上的 slug,login
就像这样:
<?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;
[...]
我在那里想念什么?谢谢你的帮助 !