Получение "истинного" объекта из прокси-объекта в doctrine2

Doctrine использует прокси-объекты для представления связанных объектов, чтобы облегчить ленивую загрузку. Это действительно хорошая функция, но она вызывает проблему с тем, что я пытаюсь сделать.

Я настроил свой объект пользователя так, что все они должны быть связаны с другим объектом, который я назову city. Эта связь работает нормально.

У меня есть форма, которую заполняет пользователь, чтобы создать другой объект, улицу. Улица также связана с объектом city. Вместо того чтобы заставлять пользователя выбирать город при заполнении формы, я хочу автоматически установить его перед сохранением объекта в базе данных.

Я пытался использовать $event->setCity($user->getCity()), но поскольку $user->getCity() возвращает прокси-объект, это приводит к ошибке. Есть ли функция, которую я могу вызвать из прокси-объекта, чтобы получить реальный объект?

Примечание: я знаю, что могу создать пользовательский запрос с join, чтобы заставить doctrine действительно загрузить связанный объект, но поскольку это пользователь (использующий FOSUserBundle), это будет трудно сделать правильно.

35
задан MrGlass 1 December 2011 в 07:14
поделиться