Doctrine orm 从抽象类扩展FOSUserBundle的用户模型
在Symfony中,我尝试创建一个文档管理系统,并创建与文档的关系 这些文档可以属于用户或组织(也有用户)。因此,与github类似,存储库可以属于用户(github.com/iamtheuser/coolrepo)或组织(github.com/myorg/coolrepo),此文档可以属于用户或组织 现在,为了做到这一点,我创建了一个抽象类Doctrine orm 从抽象类扩展FOSUserBundle的用户模型,doctrine-orm,doctrine,symfony,one-to-many,Doctrine Orm,Doctrine,Symfony,One To Many,在Symfony中,我尝试创建一个文档管理系统,并创建与文档的关系 这些文档可以属于用户或组织(也有用户)。因此,与github类似,存储库可以属于用户(github.com/iamtheuser/coolrepo)或组织(github.com/myorg/coolrepo),此文档可以属于用户或组织 现在,为了做到这一点,我创建了一个抽象类DocumentableDocumentable与Document具有多对一关系。组织类扩展了文档,而用户类也应该扩展文档 但是我使用的是FOSUserBu
Documentable
Documentable
与Document
具有多对一关系。组织
类扩展了文档
,而用户
类也应该扩展文档
但是我使用的是FOSUserBundle,我很难扩展用户
模型。原来的那个看起来像
abstract class User implements UserInterface, GroupableInterface
{
//...
}
我想以某种方式扩展它,就像这样
abstract class User extends Documentable implements UserInterface, GroupableInterface
{
//...
}
Documentable
注释基本上如下所示:
/**
* Documentable
*
* @ORM\Table(name="documentable")
* @ORM\Entity(repositoryClass="AppBundle\Repository\DocumentableRepository")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({"user" = "AppBundle\Entity\User", "organization" = "AppBundle\Entity\Organization"})
*/
我尝试了几种方法来覆盖FOSUserBundle模型,但它似乎不起作用
这有可能吗 您正在尝试直接更改FOSUserBundle用户类吗?因为这不是正确的方法。不管怎样,你得到了什么错误?我尝试过重写模型/实体,就像你在Symfony中重写控制器一样,但它不起作用,它只是从供应商文件夹中获取模型。是的,在某种程度上我想直接更改它,因为我希望
组织
和用户
(来自FOSUserBundle)具有相同的可文档
基类,因此我可以具有双向关系,因此从文档中我可以调用$document->getDocumentable()
它将返回组织
或用户
。