Pero a la hora de realizar o intentar realizar una mini carga de datos para ver que tal funciona, me da un error que en verdad nose donde puede estar el problema, seguramente sea un error mío pero no he dado con la tecla.
Voy a describir las clases involucradas y el index donde intento hacer las pruebas.
clase persona.php
Código:
clase Usuario.php<?php namespace models\persistencia; /** * @Entity * @Table(name="persona") * @InheritanceType("JOINED") * @DiscriminatorColumn(name="discrP", type="string") * @DiscriminatorMap({"persona" = "Persona", "alumno" = "Alumno", "usuario" = "Usuario", "profesor" = "Profesor" }) */ class Persona { /** * @Id * @Column(type="integer", nullable=false) * @GeneratedValue(strategy="AUTO") */ private $id; /** * @Column(type="string", length=60) */ private $nombre; /** * @Column(type="string", length=60) */ private $apellido; /** * @Column(type="string", length=100) */ private $direccion; /** * @Column(type="string", length=30) */ private $telefono; /** * @Column(type="string", length=30) */ private $celular; /** * @Column(type="string", length=45) */ private $mail; /** * @Column(type="integer", length=2) */ private $sexo; /** * @Column(type="integer", length=3) */ private $edad; /** * @Column(type="string", length=50) */ private $foto; /** * @Column(type="integer", length=1) */ private $habilitado; /** * @Column(type="date") */ private $fechaCreado; /** * @ManyToOne(targetEntity="Localidad") * @JoinColumn(name="idLocalidad", referencedColumnName="id") */ private $idLocalidad; //--------------------------- METODOS ----------------------------------------------------------- public function __construct(){ } public function getId (){ return $this->id; } public function getNombre (){ return $this->nombre;} public function setNombre($nombre) { $this->nombre = $nombre; } public function getApellido (){ return $this->apellido; } public function setApellido($apellido) { $this->apellido = $apellido; } public function getDireccion (){ return $this->direccion;} public function setDireccion($direccion) { $this->direccion = $direccion; } public function getTelefono (){ return $this->telefono; } public function setTelefono($telefono) { $this->telefono = $telefono; } public function getCelular (){ return $this->celular; } public function setCelular($celular) { $this->celular = $celular;} public function getMail (){ return $this->mail; } public function setMail($mail) { $this->mail = $mail; } public function getSexo (){ return $this->sexo; } public function setSexo($sexo) { $this->sexo = $sexo;} public function getEdad (){ return $this->edad; } public function setEdad($edad) { $this->edad = $edad;} public function getFoto (){ return $this->foto; } public function setFoto($foto) { $this->foto = $foto; } public function getHabilitado (){ return $this->habilitado;} public function setHabilitado($habilitado) { $this->habilitado = $habilitado; } public function getFechaCreado (){ return $this->fechaCreado;} public function setFechaCreado($fechaCreado) { $this->fechaCreado = $fechaCreado; } public function getIdLocalidad (){ return $this->idLocalidad; } public function setIdLocalidad($idLocalidad) { $this->idLocalidad = $idLocalidad; } }
Código:
Clase Ciudad.php<?php namespace models\persistencia; /** * @Entity * @Table(name="usuario") */ class Usuario extends Persona { /** * @Id * @Column(type="integer", nullable=false) * @GeneratedValue(strategy="AUTO") */ private $id; /** * @Column(type="string", length=45) */ private $password; /** * @OneToOne(targetEntity="TipoUsuario") * @JoinColumn(name="idTipoUsuario", referencedColumnName="id") */ private $idTipoUsuario; /** * @OneToOne(targetEntity="Persona") * @JoinColumn(name="idPersona", referencedColumnName="id") */ private $idPersona; /** * @ManyToMany(targetEntity="Grupete", mappedBy="materias") */ private $grupetes; public function __construct() { } public function getId() { return $this->id; } public function setId($id) { $this->id = $id; } public function getPassword() { return $this->password; } public function setPassword($password) { $this->password = $password; } public function getIdTipoUsuario() { return $this->idTipoUsuario; } public function setIdTipoUsuario($idTipoUsuario) { $this->idTipoUsuario = $idTipoUsuario; } public function getIdPersona() { return $this->idPersona; } public function setIdPersona($idPersona) { $this->idPersona = $idPersona; } public function getGrupetes() { return $this->grupetes; } public function setGrupetes($grupetes) { $this->grupetes = $grupetes; } }
Código:
Clase Localidad.php<?php namespace models\persistencia; /** * @Entity * @Table(name="ciudad") * @InheritanceType("JOINED") * @DiscriminatorColumn(name="discrCi", type="string") * @DiscriminatorMap({"ciudad" = "Ciudad", "localidad" = "Localidad"}) */ class Ciudad { /** * @Id * @Column(type="integer", nullable=false) * @GeneratedValue(strategy="AUTO") */ private $id; /** * @Column(type="string", length=45) */ private $nombre; public function __construct() { } public function getId() { return $this->id; } public function getNombre() { return $this->nombre; } public function setNombre($nombre) { $this->nombre = $nombre; } }
Código:
Clase TipoUsuario.php<?php namespace models\persistencia; /** * @Entity * @Table(name="localidad") */ class Localidad extends Ciudad { /** * @Id * @Column(type="integer", nullable=false) * @GeneratedValue(strategy="AUTO") */ private $id; /** * @Column(type="string", length=45) */ private $nombreLoc; /** * @OneToOne(targetEntity="Ciudad") * @JoinColumn(name="idCiudad", referencedColumnName="id") */ private $idCiudad; public function __construct() { } public function getId() { return $this->id; } public function getNombreLoc() { return $this->nombreLoc; } public function setNombreLoc($nombreLoc) { $this->nombreLoc = $nombreLoc; } public function getIdCiudad() { return $this->idCiudad; } public function setIdCiudad($idCiudad) { $this->idCiudad = $idCiudad; } }
Código:
...sigue como respuesta... <?php namespace models\persistencia; /** * @Entity * @Table(name="tipo_usuario") */ class TipoUsuario { /** * @Id * @Column(type="integer", nullable=false) * @GeneratedValue(strategy="AUTO") */ private $id; /** * @Column(type="string", length=60) */ private $nombre; public function __construct() { } public function getId() { return $this->id; } public function getNombre() { return $this->nombre; } public function setNombre($nombre) { $this->nombre = $nombre; } }