我在覆盖实体时遇到问题。我需要该字段emailCanonical
不是唯一的。
这是我所做的:根据 Doctrine2 文档,在我UserBundle\Resources\config\doctrine\User.orm.xml
添加了以下配置attribute-overrides
<attribute-overrides>
<attribute-override name="emailCanonical">
<field column="email_canonical" unique="false" name="emailCanonical" />
</attribute-override>
</attribute-overrides>
然后我运行了以下控制台命令
$ php app/console doctrine:migrations:diff
$ php app/console doctrine:migrations:migrate
一切正常。emailCanonical
被制作为非唯一的。但是现在,当我需要在其他项目包中生成实体时,我遇到了一个奇怪的错误:
$ php app/console doctrine:generate:entities SkyModelsBundle:Category
Generating entity "Sky\Bundle\ModelsBundle\Entity\Category"
[Doctrine\ORM\Mapping\MappingException]
Invalid field override named 'emailCanonical' for class 'Sky\Bundle\UserBundle\Entity\User'.
doctrine:generate:entities [--path="..."] [--no-backup] name
但是,如果我从 xml 映射中删除覆盖设置,一切正常。