我在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
时,出现映射异常:
“”类不存在
理想情况下,我希望能够使用mappedBy
和inversedBy
选项,以便“帐户”文档拥有该关系,并能够引用共享某些内容的“用户”或“公司”属性。以下方法不起作用,但是有没有办法实现它所代表的含义?
/* @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;
}