Foros del Web » Programando para Internet » PHP »

Probelmas con saveAll de Cakephp

Estas en el tema de Probelmas con saveAll de Cakephp en el foro de PHP en Foros del Web. Hola a todos, primero gracias por leer este post y por las sugerencias que puedan hacer para ayudarme en mi problema. Ok el tema es ...
  #1 (permalink)  
Antiguo 28/05/2011, 10:50
 
Fecha de Ingreso: septiembre-2010
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
Probelmas con saveAll de Cakephp

Hola a todos, primero gracias por leer este post y por las sugerencias que puedan hacer para ayudarme en mi problema.
Ok el tema es el siguiente, tengo tres tablas enlazadas:
Regiones->(hasMany)->Provincias->(hasMany)->Comunas
... y llego al momento de querer editar un RPC (que es como le llamo), para lo cual tengo la siguiente vista con el formulario indicado:

Vista->editRPC:
Código PHP:
<?php echo $this->Form->create('Regiones',array('action'=>'editRPC')); ?>

        <table><?php  
echo "<tr><td>Código Región: </td>"
                   echo 
$this->Form->input('Regiones.id', array('value' => $resultadoRPC['0']['regiones']['id'], 'value' => $resultadoRPC['0']['regiones']['id'],'label' => false,'type'=>'hidden')); 
                    echo 
"<td>";echo $this->Form->input('Regiones.reg_codReg', array('value' => $resultadoRPC['0']['regiones']['reg_codReg'],'label' => false,'class'=>'estilo_textarea')); echo"</td>";
echo 
"<td width=10></td><td>Nombre Región:</td>";
               echo 
"<td>";echo $this->Form->input('Regiones.reg_nombre', array('value' => $resultadoRPC['0']['regiones']['reg_nombre'],'label' => false,'class'=>'estilo_textarea')); echo"</td></tr>";        

                echo 
"<tr><td>Código Provincia: </td>"
                        echo 
$this->Form->input('Provincias.0.id', array('value' => $resultadoRPC['0']['provincias']['id'],'label' => false,'type'=>'hidden')); 
                echo 
"<td>";echo $this->Form->input('Provincias.0.prv_codPrv', array('value' => $resultadoRPC['0']['provincias']['prv_codPrv'],'label' => false'class'=>'estilo_textarea')); echo "</td>";

                echo 
"<td width=10></td><td>Nombre Provincia: </td>"
            echo 
"<td>";echo $this->Form->input('Provincias.0.prv_nombre', array('value' => $resultadoRPC['0']['provincias']['prv_nombre'],'label' => false'class'=>'estilo_textarea')); echo "</td></tr>";
            
                 echo 
"<tr><td>Código Comuna: </td>"
                   echo 
$this->Form->input('Provincias.Comunas.id', array('value' => $resultadoRPC['0']['comunas']['id'],'label' => false,'type'=>'hidden')); 
                 echo 
"<td>";echo $this->Form->input('Provincias.Comunas.com_codCom', array('value' => $resultadoRPC['0']['comunas']['com_codCom'],'label' => false'class'=>'estilo_textarea')); echo "</td>";

            echo 
"<td width=10></td><td>Nombre Comuna: </td>"
            echo 
"<td>";echo $this->Form->input('Provincias.Comunas.com_nombre', array('value' => $resultadoRPC['0']['comunas']['com_nombre'],'label' => false'class'=>'estilo_textarea')); echo "</td></tr>";?>                
            </table>

    <center> <?php echo $this->Form->submit('Guardar', array('div' => false));?></center>
Y su controlador->regiones_controller:
Código PHP:
function editRPC($idComuna null$id null) {
       if (!
$idComuna && empty($this->data)) { 

            
$this->Session->setFlash(__('Invalid RPC'true));

            
$this->redirect(array('action' => 'index'));

            }
        if (!empty(
$this->data)) { print_r($this->data);

            if (
$this->Regiones->saveAll($this->data, array('validate'=>'first'))) { 

                
$this->Session->setFlash(__('El RPC ha sido modificado.'true));
                
$this->redirect(array('action' => 'index'));

            } else {

                
$this->Session->setFlash(__('El RPC no ha sido modificado.'true));

                }

            }
        if(empty(
$this->data)){    
                
$this->data $this->Regiones->read(null,$id); 
            }
            
            
$resultadoRPC=$this->Regiones->Provincias->Comunas->query("SELECT * FROM comunas,provincias,regiones WHERE comunas.provincias_id=provincias.id AND provincias.regiones_id=regiones.id AND comunas.id=$idComuna ");    
            
$this->set(compact('resultadoRPC'));            

    } 
El problema es que al momento de almacenar los cambios realizados, el metodo "saveAll" no funciona, solo almacena lo modificado en el modelo Regiones. Lo que necesito es que almacene lo modificado en los 3 modelos: Regiones, Provincias, Comunas.
Porfavor si alguien tiene alguna idea de como se hace, o si ve que algo esta mal en el codigo diganme, porque ya llevo muchos dias intentanto solucionarlo y no lo he logrado.
Muy agradecida desde ya

Etiquetas: cakephp
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 15:25.