Вам не нужно извлекать исходный объект, поскольку класс Proxy должен быть на 100% прозрачным для вашего кода.
Если вам нужно сериализовать документ, например, чтобы отправить его через API, обязательно правильно внедрите метод serialize()
в вашем документе.
Если вам все еще нужно получить ссылочный документ без прокси, вы можете либо prime()
, либо получить его с помощью отдельного запроса, указав hydrate(false)
:
$user = $dm->createQueryBuilder('Person')
->field('_id')->equals($user->getPerson()->getId())
->hydrate(false)
См:
Doctrine ODM Doc: Отключение гидратации для получения дополнительной информации.