Foros del Web » Programando para Internet » PHP » Zend »

Problemas con Zend_DB_Table

Estas en el tema de Problemas con Zend_DB_Table en el foro de Zend en Foros del Web. Hola, estoy comenzando con Zend y hay bastantes cosas q no acabo de entender bien. Estoy creando un registro de empresas, tal que una vez ...
  #1 (permalink)  
Antiguo 01/04/2010, 06:25
 
Fecha de Ingreso: junio-2009
Mensajes: 115
Antigüedad: 15 años, 4 meses
Puntos: 0
Problemas con Zend_DB_Table

Hola, estoy comenzando con Zend y hay bastantes cosas q no acabo de entender bien. Estoy creando un registro de empresas, tal que una vez registrada se pasa a registrar un administrador. Entonces lo q tengo es un Controller Empresa, q llama al Modelo correspondiente y se encarga de insertar ls dats en la BD mediante Model_DbTable_Empresa y despues me pasa al Controller Usuario q despliega su propio form, recoge los datos y recupera la id de la constructora q acabams d registrar con el fin de guardar la relacion entre ambos en la base de datos.
Mi problema es q dspues de almacenar la Empresa, intento devolver su id, pero no m retorna nada, lo que probe fue crear este metodo en Model_DbTableEmpresa:

public function getConstructoras() {
return $this->fetchAll();
}

Y antes de reenviar al Controller del Usuario recorro lo q me encontre en la BBDD de empresas para capturar el id de la empresa q me interesa:

foreach($constructoras as $constructora){
if($contructora->nif==$nif){
$id_cons=$constructora->id;
}
}

Pero nunca me retorna nada, el caso es q ls inserts me funcionan bien y ls delate tb pero cnd intento retornar todas las entradas d la BBDD no m funciona, espero vuestra ayuda
  #2 (permalink)  
Antiguo 01/04/2010, 08:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problemas con Zend_DB_Table

Si tu haces un insert() dentro de un DbTable el valor de retorno es el id autoincrementado:
Código PHP:
Ver original
  1. $id = $this->insert($data);

Saludos.
  #3 (permalink)  
Antiguo 01/04/2010, 09:02
 
Fecha de Ingreso: junio-2009
Mensajes: 115
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problemas con Zend_DB_Table

Muxas gracias, no tenia ni idea de eso XDD. Tenia otra duda pq keria saber si conocias d algun ejemplo sobre como hacer login cn Zend, ya q no encuentro ningun post q hable del tema. Gracias d antemano
  #4 (permalink)  
Antiguo 01/04/2010, 09:07
 
Fecha de Ingreso: junio-2009
Mensajes: 115
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problemas con Zend_DB_Table

Encontre una guia q lo explica bien, aqui dejo el enlace x si interesa a alguien:
http://bolsadeideas.cl/zsamer/2008/05/sistema-de-login/

Asi, mismo keria saber si habia alguna forma de que x ejemplo al intentar insertar un usuario en la BBDD pueda saber si ya existe o no, pq de momento tngo el DNI como clave unica y si intento insertar otro cn el mismo DNI me devuelve un error, pero kiero redireccionarlo a una pagina de error en caso de q ese DNI ya estuviese registrado.
Gracias
  #5 (permalink)  
Antiguo 01/04/2010, 09:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problemas con Zend_DB_Table

En ese caso sobrecarga el método insert() y haz esa verificación ahí y puedes lanzar una excepción en el caso.

Saludos.
  #6 (permalink)  
Antiguo 01/04/2010, 09:22
 
Fecha de Ingreso: junio-2009
Mensajes: 115
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problemas con Zend_DB_Table

Perdona Gatorv, pero podria hacer entonces un select para comprobar q existe el usuario, antes de hacer el insert dentro del mismo metodo? m podrias indicar como?
  #7 (permalink)  
Antiguo 01/04/2010, 10:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problemas con Zend_DB_Table

Como te comente, sobrecarga el método insert() de tu clase Zend_Db_Table para realizar la verificación ahí.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:59.