Doctrine MappedSuperclass和唯一约束



我有一个场景,我需要使用Doctrine的MappedSuperclass功能(使用Symfony2),并在一些超类列上创建一个唯一的约束。比方说:

use DoctrineORMMapping as ORM;
/**
 * @ORMMappedSuperclass
 */
class Base
{
    /**
     * @ORMColumn(type="integer", nullable=false)
     */
    private $someColumn;
}
/**
 * @ORMEntity
 * @ORMTable(uniqueConstraints={@ORMUniqueConstraint(name="column_idx", columns={"someColumn"})})
 */
class Concrete extends Base
{
}

问题出现在模式生成过程中处理@ORM\Table注释时:

[DoctrineDBALSchemaSchemaException]                          
There is no column with name 'someColumn' on table 'Concrete'.

有没有一种方法可以定义映射超类的唯一约束?

由于答案作者自己没有发布答案,让我引用他的话:

请尝试对实体字段使用protected而不是private。您应该始终使用受保护的或公共的实体字段

最新更新