Doctrine MappedSuperclass和唯一约束

时间:2015-02-15 16:58:09

标签: php symfony doctrine-orm

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

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\MappedSuperclass
 */
class Base
{
    /**
     * @ORM\Column(type="integer", nullable=false)
     */
    private $someColumn;
}

/**
 * @ORM\Entity
 * @ORM\Table(uniqueConstraints={@ORM\UniqueConstraint(name="column_idx", columns={"someColumn"})})
 */
class Concrete extends Base
{
}

问题在于在模式生成期间处理@ORM \ Table注释:

[Doctrine\DBAL\Schema\SchemaException]                          
There is no column with name 'someColumn' on table 'Concrete'.

有没有办法定义映射超类的唯一约束?

1 个答案:

答案 0 :(得分:0)

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

  

尝试对实体字段使用protected而不是private。您应该始终对实体字段使用protected或public