@ORMId 不会为 symfony 中的实体创建标识符



我有一个由许多特征组成的类城市。

/**
 * @ORMEntity
 * @ORMTable(name="City")
 * @SoftDeleteable(fieldName="deletedAt")
 */
class City
{
    use IdentifiableEntity;
    use TimestampableEntity;    
}

我有一个特征可识别实体

trait IdentifiableEntity
{
    /**
     * @var integer
     * @ORMColumn(name="id", type="integer", options={"unsigned":true})
     * @ORMId
     * @ORMGeneratedValue(strategy="AUTO")
     */
    protected $id;
    //setter getter
}

当我执行bin/控制台时出现问题 原则:迁移:差异 我收到此错误消息

[DoctrineORMMappingMappingException]                                                                                         
  No identifier/primary key specified for Entity "AppBundleEntityCityCity". Every Entity must have an identifier/primary key. 

为什么?我已经在我的特质中明确指出,$id应该像对待@ORMId一样对待。添加@ORMGeneratedValue(strategy="IDENTITY")也无济于事。怎么了?

附言我正在使用symfony 3.2和doctrine/doctrine-migrations-bundle:1.0

只有当你的类 City 有其他没有注释的$id属性时,这才有可能。因此,它从特质中覆盖了$id。否则,请确保这是确切的 City 类,而不是来自另一个命名空间的其他类。

最新更新