Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/05/2011, 10:50
angelchileno
 
Fecha de Ingreso: septiembre-2010
Mensajes: 9
Antigüedad: 13 años, 8 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