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

Zend Framework no me deja actualizar filas de la BD

Estas en el tema de Zend Framework no me deja actualizar filas de la BD en el foro de Zend en Foros del Web. Buenas! Llevo toda la tarde con algo y no puedo solucionarlo. Haciendo el código mas simple posible para que se entienda mi problema, tengo la ...
  #1 (permalink)  
Antiguo 14/10/2009, 14:04
 
Fecha de Ingreso: marzo-2006
Mensajes: 47
Antigüedad: 18 años, 1 mes
Puntos: 0
Zend Framework no me deja actualizar filas de la BD

Buenas!
Llevo toda la tarde con algo y no puedo solucionarlo. Haciendo el código mas simple posible para que se entienda mi problema, tengo la siguiente clase que extiende de Zend_Db_Table_Abstract
Código PHP:
<?php
class Admin_Model_DbTable_Usuarios extends Zend_Db_Table_Abstract{
    protected 
$_name "usuarios";
    protected 
$_primary "id";
    
    public static function 
insertar(){
        
$datos = array(
            
'nombre' => 'prueba',
            
'password' => 'probando'
        
);
        
$modelo = new self();
        
$usuario $modelo->createRow($datos);
        return 
$usuario->save();
    }

    public static function 
actualizar(){
        
$datos = array(
            
'nombre' => 'pruebaUpdate',
            
'password' => 'probandoUpdate'
        
);
        
$modelo = new self();
        
$where $modelo->getAdapter()->quoteInto('id = ?'12);
        return 
$modelo->update($datos$where);
    }
}
Mi problema es que cuando uso desde un controlador el metodo insertar funciona perfectamente pero al usar el método actualizar me tira un error del tipo: "Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)'".....

Ya no se si es un error tonto que no veo o que, por eso necesito ayuda.
Desde ya muchas gracias!
  #2 (permalink)  
Antiguo 14/10/2009, 15:06
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 8 meses
Puntos: 55
Respuesta: Zend Framework no me deja actualizar filas de la BD

bueno no soy experto en ZF, pero cada dia aprendo mas :D (gracias a dios)

pq usas "$modelo = new self();"?

no deberia de ser $this???

yo haria

Código php:
Ver original
  1. .....
  2. public static function actualizar(){
  3.         $datos = array(
  4.             'nombre' => 'pruebaUpdate',
  5.             'password' => 'probandoUpdate'
  6.         );
  7.         $where = $this->getAdapter()->quoteInto('id = ?', 12);
  8.         return $this->update($datos, $where);
  9.     }
  10. ....

revisa el siguiente link donde explica la actualizacion de datos usando zend_Db_Table_Abstract

espero te sirva al ayuda
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 14/10/2009, 15:06
Avatar de pablofmorales  
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 222
Antigüedad: 16 años, 1 mes
Puntos: 37
Respuesta: Zend Framework no me deja actualizar filas de la BD

La excepcion que te tira es porque en tu sistema necesitas el ErrorController para que te rendere los errores.

Tenes un ejemplo de como hacerlo en el quickstar de Zend Framework.
__________________
blog
  #4 (permalink)  
Antiguo 16/10/2009, 12:50
 
Fecha de Ingreso: marzo-2006
Mensajes: 47
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Zend Framework no me deja actualizar filas de la BD

Gracias a ambos pero sigue sin funcionar.

"emiliodeg": Usando $this me tira un Fatal error: Using $this when not in object context

"pablofmorales": si bien ahora me renderiza bien los errores con el ErrorController, sigo sin poder actualizar la base de datos. Ahora el ErrorController me dice que el error es del tipo "Application error" pero nada más.

Por otro lado intente con el siguiente código en un controlador y me sigue tirando el "Application error".
Código PHP:
<?php
class Admin_IndexController extends Zend_Controller_Action{
    public function 
init(){
        
$this->getHelper('layout')->disableLayout();
        
$this->getHelper('ViewRenderer')->setNoRender();
    }
    public function 
indexAction(){
        
$model = new Admin_Model_DbTable_Usuarios();
        
$datos = array(
            
'nombre' => 'pruebaUpdate',
            
'password' => 'probandoUpdate'
        
);
        
$where $model->getAdapter()->quoteInto('id = ?'12);
        
$model->update($datos$where);
    }
}
Si a alguien se le ocurre que puede ser le estaré muy agradecido
Saludos
  #5 (permalink)  
Antiguo 16/10/2009, 14:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Zend Framework no me deja actualizar filas de la BD

Haz lo siguiente:
Código PHP:
Ver original
  1. public function indexAction(){
  2. try {
  3.         $model = new Admin_Model_DbTable_Usuarios();
  4.         $datos = array(
  5.             'nombre' => 'pruebaUpdate',
  6.             'password' => 'probandoUpdate'
  7.         );
  8.         $where = $model->getAdapter()->quoteInto('id = ?', 12);
  9.         $model->update($datos, $where);
  10. } catch( Exception $e) {
  11.         echo $e->getMessage() . '<br />' . $e->getTraceAsString();
  12.         exit();
  13. }
  14.     }

Saludos.
  #6 (permalink)  
Antiguo 16/10/2009, 15:34
 
Fecha de Ingreso: marzo-2006
Mensajes: 47
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Zend Framework no me deja actualizar filas de la BD

Gracias GatorV!
Con el try/catch pude ver que el usuario asignado a la base de datos tenia permisos para todo menos para el update.

nota mental: usar try/catch
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 07:35.