Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/04/2012, 10:04
pixma_uy
 
Fecha de Ingreso: enero-2011
Ubicación: Montevideo
Mensajes: 31
Antigüedad: 13 años, 3 meses
Puntos: 1
Consulta y error al insertar datos Codeigniter2+Doctrine2

Estimados, estoy probando con Codeigniter2+Doctrine2 y bueno he estado realizando el modelo, el cual al parecer está bien dado que Doctrine2 me pudo generar las tablas en forma correcta.

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:
<?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;   }
   
}
clase Usuario.php
Código:
<?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;  }

}
Clase Ciudad.php

Código:
<?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; }
}
Clase Localidad.php
Código:
<?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; }
    
}
Clase TipoUsuario.php
Código:
<?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;  }

}
...sigue como respuesta...