Php 我可以使用Doctrine2和symfony在数据库中持久化抽象类吗
我有这个班级结构Php 我可以使用Doctrine2和symfony在数据库中持久化抽象类吗,php,symfony,doctrine-orm,abstract-class,persist,Php,Symfony,Doctrine Orm,Abstract Class,Persist,我有这个班级结构 UserInterface--抽象类用户扩展UserInterface 班主任扩展用户 现在我正在使用类表继承 因此,在dtabase中,我有两个表User和Teacher以及FK to User 我坚持这样的抽象类 /** * @ORM\Entity(repositoryClass="xxxx\UserBundle\Repository\UserRepository") * @ORM\HasLifecycleCallbacks * @ORM\Table(name="us
UserInterface
--抽象类用户扩展UserInterface
班主任扩展用户
现在我正在使用类表继承
因此,在dtabase中,我有两个表User
和Teacher以及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
{
我想知道我做得对吗?作为一个抽象的阶级,你不能用教义来坚持它。您可以持久化扩展抽象类的类,在本例中抽象类是Teacher。但它工作正常。此捆绑包还使用了在PHP中无法执行的
new AbstractClass()
,这是不可能的。在您的情况下,您不能执行newuser()