2012-07-19 74 views
0

我有这样的阶级结构我能坚持使用Doctrine2和symfony的

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

由于无法启动抽象类,因此无法使用Doctrine将其保留。您可以坚持扩展Abstract类(在本例中为Teacher)的类。

+0

但它工作正常。这个包也使用相同的东西https://github.com/netmeansnet/NmnMultiUserBundle/blob/master/Resources/doc/index.md – user825904 2012-07-19 07:22:11

+0

你不能在PHP中使用'new AbstractClass()',这是不可能的。在你的情况下,你不能做'新的用户()' – 2012-07-20 09:51:02