2014-04-04 54 views
0

我想翻譯多種語言的BlogPost的slu slu。我決定使用KnpLabs/DoctrineBehaviors來幫助完成任務。我安裝了這個軟件包,在幾分鐘內就可以運行。但是,當我添加可翻譯行爲時,我無法更新我的模式。翻譯行爲正在尋找 Enti文件夾

當我嘗試更新我的數據庫模式時(我知道--force不在圖片上,但它做了相同的結果)時出現以下錯誤。

enter image description here

這裏是我的博文實體:

namespace MyProject\MyBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Knp\DoctrineBehaviors\Model as ORMBehaviors; 

/** 
* @ORM\Entity 
*/ 
class BlogPost 
{ 
    use ORMBehaviors\Sluggable\Sluggable, 
     ORMBehaviors\Translatable\Translation; 


    /** 
    * @ORM\Column(type="string") 
    */ 
    protected $title; 

    public function setTitle($title) 
    { 
     $this->title = $title; 
     return $this; 
    } 


    public function getSluggableFields() 
    { 
     return [ 'title' ]; 
    } 

} 

這是我的BlogPostTranslation實體:

namespace MyProject\MyBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 
use Knp\DoctrineBehaviors\Model as ORMBehaviors; 
use ORMBehaviors\Translatable\Translation; 

/** 
* @ORM\Entity 
*/ 
class BlogPostTranslation 
{ 
    use ORMBehaviors\Translatable\Translation; 


    /** 
    * @ORM\Column(type="string", length=255) 
    */ 
    protected $name; 


    /** 
    * @ORM\Column(type="string") 
    */ 
    protected $title; 

    public function setTitle($title) 
    { 
     $this->title = $title; 
    } 

    public function getTitle() 
    { 
     return $this->title; 
    } 
} 

我做了一些調試教義和 「TargetEntity」 真是找文件夾「Enti」。 這隻會發生如果我添加可翻譯的行爲。如果我將它刪除,我可以更新並使用可靠行爲而不會有任何問題。

回答

1

您的問題在於BlogPost實體。你必須useTranslatable性狀,而不是Translation特質。
要解決您的問題,改變use聲明:

/** 
* @ORM\Entity 
*/ 
class BlogPost 
{ 
    use ORMBehaviors\Sluggable\Sluggable, 
     ORMBehaviors\Translatable\Translatable; 
    // ... 

還檢查了約proxy translations部分。

+1

是!我最終搞清楚了,但我相信這對未來的人會有用。遺憾的是沒有更多的文檔,因爲Bundle是完全可怕的! –