Итерации этого вопроса заданы в прошлом, но это представляет собой уникальные проблемы, поскольку он сочетает некоторые проблемы в одной более крупной проблеме.Пользовательский объект в отношениях «один к одному» с использованием первичного ключа, совместно используемого с внешним ключом
У меня есть сущность (Пользователь), которая используется в качестве пользовательского класса в моем приложении, тогда у меня есть другой объект (UserExtra) в отношениях «один к одному» с пользовательским объектом, идентификатор UserExtra такой же, как Пользователь. Внешний ключ такой же, как и первичный ключ.
Когда пользовательский объект загружен (скажем, $this->getUser()
или {{ app.user }}
, данные UserExtra также загружаются через соединение. Вся суть имеет два объекта, поэтому мне не нужно сразу загружать все данные.
Я даже попытался определить пользовательский репозиторий UserLoaderInterface/UserProviderInterface для пользователя, убедившись, что refreshUser и loadUserByUsername будут загружать только пользовательские данные (я бы хотел, чтобы данные UserExtra сидели в прокси-сервере, если я им явно не нужен), но когда Doctrine отправляется на Hydrate объект, он выдает дополнительный запрос для загрузки данных UserExtra, тем самым пропуская статус прокси.
Is есть выход из этого?
до сих пор мне удалось заставить его работать на неправильной маркировки отношения как много-к-одному (добавочно много) и изменяя getExtra и setExtra, чтобы они имели доступ -> extra [0]. Это, конечно, плохо. –