Call to a member function getBucket() on string
Делаю вызов:
$user = $training->getUser();
dd($user->getBucket());
Получаю нужное мне значение.
При этом dd(get_class($user)) выводит Proxies\__CG__\App\Entity\User
Почему он тут вообще возвращает прокси??
Такая уж специфика работы Doctrine Он подменяет энтити на прокси под капотом
но он же не всегда так делает? И почему в первом варианте метод $training->getUser()->getBucket() не был найден, тогда как во втором варианте все сработало $user = $training->getUser(); dd($user->getBucket());
Надо специфику смотреть вам Я таких проблем не наблюдаю при привычном использовании
для того, чтобы получить объект, нужно инициировать его $training->getUser(), и затем только из объекта достать данные
прокси не при чем, у тебя юзер зарезолвился как стринг.
нет. как раз прокси. см. выше
у тебя текст ошибки говорит о том что метод вызывается у строки а не у обьекта
очевидно, из-за того, что возвращается прокси. После добавления fetch="EAGER" всё прекрасно заработало
очевидно, что реализация прокси тут не при чем. Либо прокси не были перегенерены после того как поменялся маппинг либо поменялось поведение метода getUser и там возвращается обьект в не строка
а какое есть этом объяснение?
Обсуждают сегодня