Doctrine 2中的类表继承映射:如何从实体获取类型信息

Jie*_*eng 2 doctrine-orm

使用类表继承,

/**
 * @Entity
 * @InheritanceType("JOINED")
 * @DiscriminatorColumn(name="discr", type="string")
 * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})
 */
class Person
Run Code Online (Sandbox Code Playgroud)

如何从实体获取类型信息?既然discr是数据库列,而不是实体的属性?

Koc*_*Koc 6

您可以getKind()在父类中创建抽象方法,并在子类中实现它

public function getKind()
{
  return 'employee';
}
Run Code Online (Sandbox Code Playgroud)