1

私は次のエンティティを持っています:

  • ユーザー
  • 住所

私のユーザーは Address と Address to Country に接続します。私は魔法の __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 を保存します。ユーザーから自分の国を取得するにはどうすればよいですか? プロキシを返さずに?

4

1 に答える 1

1

これについてはよくわかりませんが、国を取得すると、プロキシは通常国エンティティを返します。実際に国を取得して、どのようなオブジェクトが得られるか試してみましたか?

$addresses[0]->__get('country');
于 2013-04-18T14:15:02.540 に答える