这个想法是,无论何时创建DepartmentHead实体,扩展我的Employee
类并设置我的isManager
属性都会将其存储为true。这不起作用。有谁知道为什么以isManager
等于false来存储DepartmentHead实体?
/**
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"employee" = "Employee", "dphead" = "DepartmentHead"})
*/
class Employee
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
protected $id;
/**
* @ORM\Column(type="boolean")
*/
protected static $isManager = false;
/**
* @return bool
*/
public static function isManager(): bool
{
return static::$isManager;
}
/**
* @param bool $isManager
*/
public static function setIsManager(bool $isManager): void
{
static::$isManager = $isManager;
}
}
/**
* @Entity()
*/
class DepartmentHead extends Employee
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
protected $id;
protected static $isManager = true;
}
不使用静态属性,Doctrine无法正确处理它们。
具有公共属性,一切正常。
/**
* @ORM\Column(type="boolean")
*/
protected $isManager = true;