翻译行为正在寻找\ Enti文件夹

时间:2014-04-04 16:15:02

标签: symfony doctrine-orm doctrine

我正试图用多种语言翻译BlogPost的slu ..我决定使用KnpLabs / DoctrineBehaviors来帮助我完成任务。我安装了捆绑包,让可缓慢的行为在几分钟内完成。但是,当我添加可翻译行为时,我无法更新我的架构。

当我尝试更新数据库架构时出现以下错误(我知道--force不在图片上,但它会产生相同的结果)。

enter image description here

这是我的BlogPost实体:

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;
    }
}

我用doctrine和" TargetEntity"做了一些调试。我真的在寻找一个文件夹" Enti"。 只有在我添加可翻译行为时才会出现这种情况。如果我删除它,我可以更新和使用可缓慢的行为没有任何问题。

1 个答案:

答案 0 :(得分:1)

您的问题在于BlogPost实体。您必须use Translatable特征而不是Translation特征 要解决您的问题,请将use语句更改为:

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

另请参阅有关proxy translations

的部分