我有一个由许多特征组成的类城市。
/**
* @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 类,而不是来自另一个命名空间的其他类。