我有覆盖实体的问题.我需要这个领域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>
Run Code Online (Sandbox Code Playgroud)
然后我运行了以下控制台命令
$ php app/console doctrine:migrations:diff
$ php app/console doctrine:migrations:migrate
Run Code Online (Sandbox Code Playgroud)
一切都很好.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
Run Code Online (Sandbox Code Playgroud)
但是,如果我从xml映射中删除覆盖设置,一切正常.