Doctrine的ODM可以在不声明类型的情况下引用一个文档吗?

时间:2019-06-17 07:16:53

标签: php symfony doctrine-odm

我在Symfony 4上使用了Doctrine 2.10。我可以在Doctrine's ODM references的文档中看到,referenceMany关系可以通过省略targetDocument选项在引用中存储不同类型的文档。 :

/* @Document */
Class User
{
    /* @ReferenceMany(targetDocument="Account") */
    private accounts = [];
}

成为

/* @Document */
Class User
{
    /* @ReferenceMany */
    private accounts = [];
}

似乎referenceOne关系无法实现相同的目的。当我使用不带referenceOne选项的targetDocument时,出现映射异常:

  

“”类不存在

理想情况下,我希望能够使用mappedByinversedBy选项,以便“帐户”文档拥有该关系,并能够引用共享某些内容的“用户”或“公司”属性。以下方法不起作用,但是有没有办法实现它所代表的含义?

/* @Document */
class User
{
    /* @ReferenceMany(targetDocument="Account", mappedBy="owner") */
    private $accounts = [];
}

/* @Document */
class Company
{
    /* @ReferenceMany(targetDocument="Account", mappedBy="owner") */
    private $accounts = [];
}

/* @Document */
class Account
{
    /* @ReferenceOne(inversedBy="accounts") */
    private $owner;
}

0 个答案:

没有答案