Может ли ODM Doctrine ссылаться на один документ, не объявляя тип? - PullRequest
0 голосов
/ 17 июня 2019

Я использую 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;
}
...