我可以使用Doctrine2和symfony在数据库中持久化抽象类

时间:2012-07-19 05:48:29

标签: php symfony doctrine-orm abstract-class persist

我有这个类结构

UserInterface --- abstract Class User extends UserInterface

class Teacher extends User

现在我正在使用类表继承

所以在dtabase中我有两个表UserTeacher with FK to User

我坚持像这样的抽象类

/**
 * @ORM\Entity(repositoryClass="xxxx\UserBundle\Repository\UserRepository")
 * @ORM\HasLifecycleCallbacks
 * @ORM\Table(name="user")
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="discr", type="string")
 * @ORM\DiscriminatorMap({"puser" = "User", "teacher" = "Teacher"})
 */
abstract class User implements UserInterface, GroupableInterface
{

我想知道我做得对吗???

1 个答案:

答案 0 :(得分:1)

由于无法启动Abstract类,因此无法使用Doctrine将其保留。您可以持久化扩展Abstract类的类,在本例中为Abstract。