Я использую Doctrine 2.10 с Symfony 4. В документации для ссылок ODM от Doctrine я вижу, что отношение 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;
}