我有以下实体:
我的用户连接到国家/地址和地址。我有一个神奇的__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
}
}
只有我的国家没有得到正确的对象(来自国家实体)。我的协会:
用户实体:
/**
* 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存储在数据库中。如何从用户那里获取我的国家/地区?没有返回代理?
答案 0 :(得分:1)
我真的不确定这个,但如果你到了这个国家,代理通常会返回一个国家实体。您是否尝试过实际获取国家/地区并查看您获得的对象类型?
$addresses[0]->__get('country');