Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/11/2014, 13:48
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: herencia con Doctrine2

Cita:
Iniciado por weltxo Ver Mensaje
Hola amigos, les explico mi pequeña inquietud. He leído la documentación de Doctrine pero me generan dudas a la hora de implementar una jerarquía de herencias.

Tengo la siguiente entidad que representaría a una súper clase:

Código:
/**
 * @ORM\Entity
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="discr", type="string")
 * @ORM\DiscriminatorMap({"club" = "Competicion_Club", "seleccion" = "Competicion_Seleccion"})
 */
class Competicion
{
    /** @ORM\Column(type="string") */
    private $nombre;
    
    /** @ORM\Column(type="string" , columnDefinition="ENUM('m', 'f')") */
    private $genero;
    
    /** @ORM\Column(type="string") */
    private $discr;
}
Y dos sub-clases que heredan de la anterior clase

Código:
/** @ORM\Entity */
class CompeticionClub
{
    /** @ORM\Column(type="integer") */
    private $orden;
    
    /** @ORM\Column(type="boolean") */
    private $extinguido;
}
Código:
/** @ORM\Entity */
class CompeticionSeleccion
{
    /** @ORM\Column(type="integer") */
    private $anno;
}
Quería saber cómo establecer la relación entre estas entidades, si debo definir el atributo id solamente para la súper-clase o para las sub-clases
Defines el id en la super clase.
Por cierto esta parte no es necesaria en la clase:
Código PHP:
Ver original
  1. /** @ORM\Column(type="string") */
  2.     private $discr;

Y para la parte donde estas usando ENUM seria bueno que leas esto: http://doctrine-orm.readthedocs.org/...sql-enums.html
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.