Pareces nuevo por aquí. Si quieres participar, ¡pulsa uno de estos botones!
<?php class EncuestaController extends ApplicationController{ public function index(){ $this->indicadores = $this->Indicadores->find('order: id'); if($this->request('modulo_id')){ foreach ($this->indicadores as $indicadores){ foreach ($indicadores->getPregunta() as $pregunta){ }//foreach }//foreach }//del if }//del metodo adicionar public function preguntas($indicadores_id = null){ $this->set_response('view'); $indicadores = new Indicadores(); $indicadores->id = $indicadores_id; $this->pregunta = $indicadores->getPregunta(); }//del metodo componentes public function leyendaEst(){ //indicando el tipo de respuesta $this->set_response('view'); } }//fin del encuentas controller
<td style=' font-size: 10px; background: #EDF0F9;' width="675px"> <h1 align="center">Realización de Encuesta</h1> <?= content()?> <table> <tr> <td align="left"><b>Modulo o Curso:&nbsp; </td> <td align="left"> <select name="modulo_id"> <option value="">Seleccione Modulo</option> <? $Modulo = new Modulo(); $Mdisponible = $Modulo->find("conditions: programa_id='$nameUser->programa_id'"); foreach ($Mdisponible as $Mdisponibles){ echo "<option value='$Mdisponibles->id'>$Mdisponibles->nombre"; }//fin del foreach ?> </select> </td> </tr> <tr> <td align="left"><b>Instructor:&nbsp; </td> <td align="left"> <select name="usuario_id"> <option value="">Seleccione Instructor</option> <? $Usuario2 = new Usuario(); $Udisponible = $Usuario2->find("conditions: tipo_usuario='Instructor'"); foreach ($Udisponible as $Udisponibles){ echo "<option value='$Udisponibles->id'>$Udisponibles->nombre_apellido"; }//fin del foreach ?> </select> </td> </tr> </tr> <? foreach ($indicadores as $indicador): ?> <tr> <td> <table> <tr> <td> <strong><?= $indicador->nombre; ?></strong> </td> </tr> <tr> <td colspan="8"> <? $p = new Pregunta(); ?> <? foreach ($indicador->getPregunta as $preguntas): ?> <tr> <td><b><?= $preguntas->enunciado; ?></td> <td align="center"></td> </tr> <? endforeach; ?> </td> </tr> </table> </td> </tr> <? endforeach; ?> </table> </td>
DROP TABLE IF EXISTS `indicadores`; CREATE TABLE `indicadores` ( `id` int(10) unsigned NOT NULL auto_increment, `nombre` varchar(55) character set latin1 collate latin1_general_ci NOT NULL default '', `descrip` varchar(120) character set latin1 collate latin1_general_ci default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
DROP TABLE IF EXISTS `pregunta`; CREATE TABLE `pregunta` ( `id` int(10) unsigned NOT NULL auto_increment, `enunciado` varchar(130) NOT NULL default '', `indicadores_id` int(10) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;
Comentarios
En la tabla Preguntas (faltaba la S) debes colocar la referencia a la clave foranea de la tabla Indicadores (la convención es Pluralizar los nombres de las tablas), quedaría así:
Recuerda tambien que debes colocar las asociaciones en los modelos que hacen referencias a las tablas de la bd, en Indicador -> has_many('preguntas') y en Pregunta -> belongs_to('indicadores').