2013-04-18 3 views
1

я имею в последующие объекты:ассоциации с сущностями (ошибка прокси)

  • Пользователь
  • Адрес
  • Страна

Мой пользователь подключается к Адрес и адрес в стране. У меня есть волшебный __setter и __getter, и когда я использую $addresses = $user->__get('addresses');, он извлекает мои адреса.

свалка:

array(1) { 
    [0]=> 
    object(stdClass)#463 (13) { 
    ["__CLASS__"]=> 
    string(19) "User\Entity\Address" 
    ["inputFilter"]=> 
    NULL 
    ["addressid"]=> 
    int(21) 
    ["street"]=> 
    string(9) "Lange heg" 
    ["number"]=> 
    int(19) 
    ["addition"]=> 
    string(1) "a" 
    ["zipcode"]=> 
    string(6) "7039CA" 
    ["user"]=> 
    string(16) "User\Entity\User" 
    ["country"]=> 
    string(50) "DoctrineORMModule\Proxy\__CG__\User\Entity\Country" 
    ["creator_id"]=> 
    int(9) 
    ["creation_date"]=> 
    string(8) "DateTime" 
    ["last_modifier_id"]=> 
    NULL 
    ["last_modified_date"]=> 
    NULL 
    } 
} 

Только моя страна не получить правильный объект (от страны лиц). Мои ассоциации:

User-объектные:

/** 
* Id from user 
* 
* @ORM\OneToMany(targetEntity="User\Entity\Address", mappedBy="user") 
* @var Address 
* @access protected 
*/ 
protected $addresses; 

Адрес-объект:

/** 
* @ORM\ManyToOne(targetEntity="User\Entity\User", inversedBy="addresses") 
* @ORM\JoinColumn(name="user_id", referencedColumnName="user_id", nullable=false, onDelete="cascade") 
* @var User[] 
* @access protected 
*/ 
protected $user; 

/** 
* @ORM\ManyToOne(targetEntity="User\Entity\Country", inversedBy="id") 
* @ORM\JoinColumn(name="country_id", referencedColumnName="id", nullable=false) 
* @var Country[] 
* @access protected 
*/ 
protected $country; 

Страна-объект:

/** 
* Id from a country 
* 
* @ORM\Id 
* @ORM\Column(type="integer") 
* @ORM\GeneratedValue(strategy="AUTO") 
* @ORM\OneToMany(targetEntity="User\Entity\Address", mappedBy="country") 
* @var int 
* @access protected 
*/ 
protected $id; 

В моей адресной сущности он хранит user_id и country_id в базе данных. Как я могу получить свои страны от своих пользователей? Не возвращая прокси?

ответ

1

Я действительно не уверен в этом, но если вы получите страну, доверенное лицо, как правило, вернет страну. Вы пытались на самом деле вытащить страну и посмотреть, какой у вас объект?

$addresses[0]->__get('country'); 
+0

Да, довольно глупо. Я не знал, что он вернул прокси-сервер из-за «ленивой загрузки». Значит, он все время знал страны. Если я (как вы сказали), получите мою страну или что-то еще, она просто вернула страну. Этот прокси пришел, потому что я ничего не получил от страны страны. Глупый. – Haidy

Смежные вопросы