Want more features on Pastebin? Sign Up, it's FREE!
Guest

Nico

By: a guest on Dec 2nd, 2009  |  syntax: PHP  |  size: 2.03 KB  |  views: 79  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?php
  2.  
  3. namespace Entity;
  4.  
  5. /**
  6.  * @Entity
  7.  * @Table(name="user")
  8.  */
  9. class User
  10. {
  11.     /**
  12.      * @Id
  13.      * @Column(name="id", type="integer")
  14.      * @GeneratedValue(strategy="AUTO")
  15.      */
  16.     protected $id;
  17.    
  18.     /**
  19.      * @Column(name="name", type="string")
  20.      */
  21.     public $name;
  22.    
  23.     /**
  24.      * @OneToMany(targetEntity="Entity\Address", mappedBy="User", cascade={"persist", "remove"})
  25.      */
  26.     protected $Addresses;
  27.    
  28.     public function __construct()
  29.     {
  30.         $this->Addresses = new \Doctrine\Common\Collections\ArrayCollection();
  31.     }
  32.    
  33.     public function getId() { return $this->id; }
  34.    
  35.     public function getAddresses() { return $this->Addresses; }
  36.    
  37.     public function setAddresses(ArrayCollection $value) { $this->Addresses = $value; }
  38. }
  39.  
  40. /**
  41.  * @Entity
  42.  * @Table(name="address")
  43.  */
  44. class Address
  45. {
  46.     /**
  47.      * @Id
  48.      * @Column(name="id", type="integer")
  49.      * @GeneratedValue(strategy="AUTO")
  50.      */
  51.     protected $id;
  52.    
  53.     /**
  54.      * @Column(name="addresse", type="string")
  55.      */
  56.     public $address;
  57.    
  58.     /**
  59.      * @ManyToOne(targetEntity="Entity\User")
  60.      * @JoinColumn(name="userId", referencedColumnName="id")
  61.      */
  62.     protected $User;
  63.    
  64.    
  65.     public function getId() { return $this->id; }
  66.    
  67.     public function setUser(User $user) { $this->User = $user; }
  68.    
  69.     public function getUser() { return $this->User; }
  70. }
  71.  
  72.  
  73. ## Test code
  74.  
  75. $em = EntityManager::create($connectionOptions, $config);
  76.  
  77. $id = 32; // User 32 exists and has addresses (previous run of this script!)
  78.  
  79. /*
  80. $user = new \Entity\User;
  81. $user->name = 'Bob';
  82. $em->persist($user);
  83. $em->flush();
  84.  
  85. $address = new \Entity\Address;
  86. $address->address = 'Streetname....';
  87. $address->setUser($user);
  88. $em->persist($address);
  89. $em->flush();
  90.  
  91. $user->getAddresses()->add($address);
  92. $em->flush();
  93.  
  94. $id = $user->getId()
  95. */
  96.  
  97. $u = $em->find('Entity\User', $id);
  98.  
  99. $addresses = $u->getAddresses();
  100.  
  101. foreach ($addresses as $a) { }  // This line breaks!
clone this paste RAW Paste Data