我正试图用多种语言翻译BlogPost的slu ..我决定使用KnpLabs / DoctrineBehaviors来帮助我完成任务。我安装了捆绑包,让可缓慢的行为在几分钟内完成。但是,当我添加可翻译行为时,我无法更新我的架构。
当我尝试更新数据库架构时出现以下错误(我知道--force不在图片上,但它会产生相同的结果)。
这是我的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"。 只有在我添加可翻译行为时才会出现这种情况。如果我删除它,我可以更新和使用可缓慢的行为没有任何问题。
答案 0 :(得分:1)
您的问题在于BlogPost
实体。您必须use
Translatable
特征而不是Translation
特征
要解决您的问题,请将use
语句更改为:
/**
* @ORM\Entity
*/
class BlogPost
{
use ORMBehaviors\Sluggable\Sluggable,
ORMBehaviors\Translatable\Translatable;
// ...
另请参阅有关proxy translations。
的部分