首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原理持久化继承原理实体的php类

原理持久化继承原理实体的php类
EN

Stack Overflow用户
提问于 2012-02-29 23:19:38
回答 1查看 1.7K关注 0票数 1

有没有可能有一个php类来扩展一个规则实体并持久化它?

示例:

代码语言:javascript
复制
/**
 * @Entity
 */
class A {
  /**
   * @ORM\ManyToMany(targetEntity="C", mappedBy="parents")
   */
  protected $children;
}

class B extends A {
...
}

class C {
  /**
   * @ORM\ManyToMany(targetEntity="A", inversedBy="children")
   */
  protected $parents;
}

$b = new B();
$em->persist($b);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-01 04:16:27

是的,这是可能的,这被称为inheritance mapping,但是子类必须显式声明为@Entity,并且它的映射也必须显式定义(如果子类添加了额外的属性)。

最常见的继承映射形式是单表继承,以下是Doctrine手册中的此类映射示例:

代码语言:javascript
复制
namespace MyProject\Model;

/**
 * @Entity
 * @InheritanceType("SINGLE_TABLE")
 * @DiscriminatorColumn(name="discr", type="string")
 * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})
 */
class Person
{
    // ...
}

/**
 * @Entity
 */
class Employee extends Person
{
    // ...
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9501755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档