Ver Mensaje Individual
  #8 (permalink)  
Antiguo 20/03/2013, 07:25
wilmer30
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: Asociaciones en doctrine 2

volviendo con el mismo ejemplo, se me fue algo complicado comprender el concepto pero creo que lo tengo: quisiera saber si este ejemplo esta bien: considerando que es self-referencing el lado propietario es parent y el inverso departamentos.

Código PHP:
Ver original
  1. <?php
  2.  
  3. namespace Entities;
  4.  
  5. use Doctrine\ORM\Mapping as ORM;
  6.  
  7. /**
  8.  * Departamento
  9.  *
  10.  * @Table(name="departamento")
  11.  * @Entity
  12.  */
  13. class Departamento
  14. {
  15.     /**
  16.      * @var integer
  17.      * @Column(name="id", type="integer", nullable=false)
  18.      * @Id
  19.      * @GeneratedValue(strategy="IDENTITY")
  20.      */
  21.     private $id;
  22.  
  23.     /**
  24.      * @var string
  25.      *
  26.      * @Column(name="descripcion", type="string", length=200, nullable=false)
  27.      */
  28.     private $descripcion;
  29.  
  30.     /**
  31.      * @OneToMany(targetEntity="Departamento", inversedBy="departamentos")
  32.      * @JoinColumn(name="departamento_id", referencedColumnName="id")
  33.      **/
  34.     private $parent;
  35.     /**
  36.      * @var string
  37.      *
  38.      * @Column(name="nombrecargousuario", type="string", length=200, nullable=false)
  39.      */
  40.     private $nombrecargousuario;
  41.  
  42.     /**
  43.      * @var integer
  44.      * @ManyToOne(targetEntity="Departamento",mappedBy="parent")
  45.      * @Column(name="departamento_id", type="integer", nullable=false)
  46.      *
  47.      * @Column(name="departamento_id", type="integer", nullable=false)
  48.      */
  49.     private $departamentos;
  50.  
  51.     /**
  52.      * @var string
  53.      *
  54.      * @Column(name="sigla", type="string", length=50, nullable=false)
  55.      */
  56.     private $sigla;
  57.  
  58.     /**
  59.      * @var string
  60.      *
  61.      * @Column(name="formacite", type="string", length=20, nullable=false)
  62.      */
  63.     private $formacite;
  64.  
  65.     /**
  66.      * @var \DateTime
  67.      *
  68.      * @Column(name="fecha", type="date", nullable=false)
  69.      */
  70.     private $fecha;
  71.  
  72.     /**
  73.      * @var string
  74.      *
  75.      * @Column(name="estado", type="string", length=1, nullable=false)
  76.      */
  77.     private $estado;
  78.  
  79.     public function __construct(){
  80.         $this ->departamentos = new \Doctrine\Common\Coollections\ArrayCollection();
  81.     }
  82. }

gracias