2012-07-19 39 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