我有2个实体。
/**
* Person
*
* @ORM\Table(name="person")
* @ORM\Entity
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="role", type="string")
* @ORM\DiscriminatorMap({"official" = "OfficialPerson"})
*
*/
class Person
{
/**
* @var string
*
* @ORM\Column(name="role")
*/
private $role = 'user';
public function setRole($role)
{
$this->role = $role;
return $this;
}
public function getRole()
{
return $this->role;
}
}
和
/**
* @ORM\Entity
*/
class OfficialPerson extends Person
{
}
我需要为此字段设置getter和setter,但它是实体'Person'上列'role'的重复定义。如何解决这个问题并保存getter和setter?
当我写作
* @ORM\DiscriminatorColumn(name="role", type="string")
和
* @ORM\Column(name="role")
在Person实体中,我收到错误
Duplicate definition of column 'role' on entity 'Person'
答案 0 :(得分:0)
也许您已经在YAML文件中进行了映射。所以它找到了两个映射,一个来自YAML,另一个来自Annotations。尝试删除Resources / config / doctrine /.
下的Person.yml文件希望这有帮助。
干杯!