2011-11-03 24 views
0

我一直在試圖獲得一個現有的項目在本地副本上工作,但一直在對付ODM和依賴項的許多問題。Symfony2 Sluggable不存在或無法自動加載

我遇到這個問題Sluggable:

[Semantical Error] The annotation "@Gedmo\Mapping\Annotation\Sluggable" in property  
Cereals\ProductBundle\Document\Category\Specialty::$name does not exist, or could not be 
auto-loaded. 

我的穀物... \特殊文件是這樣的:

<?php 
namespace Cereals\ProductBundle\Document\Category; 
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB; 
use Gedmo\Mapping\Annotation as Gedmo; 

/** 
* @MongoDB\Document(collection="Specialty",  
repositoryClass="Cereals\ProductBundle\Repository\SpecialtyRepository") 
*/ 
class Specialty 
{ 
/** 
* @MongoDB\Id(strategy="auto") 
*/ 
protected $id; 

/** 
* @Gedmo\Sluggable 
* @MongoDB\Index(order="asc") 
* @MongoDB\String 
*/ 
protected $name; 

/** 
* @MongoDB\String 
* @MongoDB\UniqueIndex 
* @Gedmo\Slug 
*/ 
protected $slug; 

/** 
* @MongoDB\String 
*/ 

我從谷歌搜索,有教義一些語法更新明白2.1.x,我也在這裏爲@Gedmo \ Mapping \ Annotation \ Sluggable使用了新的註釋。

仍然出現語義錯誤。

任何人都可以指出一些方向嗎?謝謝 !

回答

1

@Gedmo\Sluggable註釋不存在。如果你看看這個folder,你會看到這個anottation沒有實現。

其實,你可以定義你的類這樣的:

<?php 
namespace Cereals\ProductBundle\Document\Category; 
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB; 
use Gedmo\Mapping\Annotation as Gedmo; 

/** 
* @MongoDB\Document(collection="Specialty",  
repositoryClass="Cereals\ProductBundle\Repository\SpecialtyRepository") 
*/ 
class Specialty 
{ 
    /** 
    * @MongoDB\Id(strategy="auto") 
    */ 
    protected $id; 

    /** 
    * @MongoDB\Index(order="asc") 
    * @MongoDB\String 
    */ 
    protected $name; 

    /** 
    * @MongoDB\String 
    * @MongoDB\UniqueIndex 
    * @Gedmo\Slug(fields={"name"}) 
    */ 
    protected $slug; 
} 

@Gedmo\Slug註釋需要將被用於塞代的屬性。

+0

嗨Gelo,謝謝你的回覆!我可以向你澄清一下,使用新的更新,@Gedmo \ Sluggable不再存在,我可以從我的$名稱中忽略它,但從現在起將「名稱」字段包含到@Gedmo \ Slug中? – jamen

+0

就像在[documentation](http://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/sluggable.md)中描述的那樣,這是唯一的方法。 – egeloen

+0

THANKs Gelo!有效。 – jamen

相關問題