Symfony2 Учение сущности не гидратировано

Я получаю сущность Member из менеджера сущностей сделал var_dump, все в порядке, кроме отношения manyToOne с FamilyЯ попробовал var_dump($member->getFamily()); и, что удивительно, единственное правильное значение было идентификатором семьи, все остальные свойства были нулевыми (что не имеет место в базе данных …)

Вот мой член

/**
* @var Family
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Family", inversedBy="members")
* @ORM\JoinColumn(name="family_id", referencedColumnName="id")
*/
private $family;

И моя семейная сущность

/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Member", mappedBy="family", cascade={"persist", "remove"})
*/
private $members;

Все геттеры и сеттеры генерируются доктриной. Просто гидратируется только идентификатор, а не все остальные. Любая идея ?

РЕДАКТИРОВАТЬ: результат var_dump

private 'family' =>
object(Proxies\__CG__\AppBundle\Entity\Family)[427]
public '__initializer__' =>
object(Closure)[405]
public '__cloner__' =>
object(Closure)[406]
public '__isInitialized__' => boolean false
private 'id' (AppBundle\Entity\Family) => int 1
private 'members' (AppBundle\Entity\Family) => null
private 'adress' (AppBundle\Entity\Family) => null
protected 'telephone' => null
protected 'email' => null
private 'nom' (AppBundle\Entity\Family) => null
private 'isValid' (AppBundle\Entity\Family) => null

4

Решение

Доктрина лениво загружает данные, если вы не присоединяете их в своем запросе (и не добавляете его псевдоним в вызов select ()). Это означает, что вы получаете прокси, как в вашем примере, а не реальный Family юридическое лицо. Прокси имеет только одно поле, к которому у него есть доступ, family_id.

Пока вы не позвонитеgetId функция на объекте (как getNom()) это остается прокси, но при таком вызове доктрина выполняет запрос для его полной загрузки. Это произойдет, даже если вы передадите этот семейный прокси ветке.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector