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>
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'));
}
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
![Afirmando](http://static.forosdelweb.com/fdwtheme/images/smilies/afirmar.gif)