protected function instantiate($attributes) { if (!isset($attributes['identidadtipo'])) { // Esto es para el caso del alta del modelo return parent::instantiate($attributes); } $classRecord = Entidadtipo::model()->findByPk($attributes['identidadtipo']); // Carga el modelo segĂșn el tipo if ($classRecord === null) { throw new CException('No se encuentra el tipo ' . $attributes['identidadtipo']); } $className = $classRecord->modelo; // Nombre del modelo a instanciar $model = new $className(null); // Null es necesario para llenar los campos con los valores que vienen de la base de datos return $model; }
'options'=>array( 'showAnim'=>'fold', // 'show' (the default), 'slideDown', 'fadeIn', 'fold' 'showButtonPanel'=>false, 'changeYear'=>true, 'changeMonth'=>true, 'dateFormat'=>'dd/mm/yy', ), ) ); echo "</div></div>" ; ?> </div> <div class="row"> <?php echo $form->label($model, 'identidadtipo'); ?> <?php echo $form->dropDownListControlGroup($model, 'identidadtipo0', CHtml::listData(Entidadtipo::model()->findAll(array('order'=>'nombre')),'identidadtipo', 'nombre')); ?> </div> <div class="row"> <?php echo $form->label($model, 'idlocalidad'); ?> <?php echo $form->dropDownListControlGroup($model, 'idlocalidad0', CHtml::listData(Localidad::model()->findAll(array('order'=>'nombre')),'idlocalidad', 'nombre'), array('prompt' => 'No corresponde')); ?> </div> <div class="row"> <?php echo $form->label($model, 'idsexo'); ?> <?php echo $form->dropDownListControlGroup($model, 'idsexo0', CHtml::listData(Sexo::model()->findAll(array('order'=>'nombre')),'idsexo', 'nombre'), array('prompt' => 'No corresponde')); ?> </div> <div class="row"> <?php echo $form->label($model, 'iddocumentotipo'); ?> <?php echo $form->dropDownListControlGroup($model, 'iddocumentotipo0', CHtml::listData(Documentotipo::model()->findAll(array('order'=>'nombre')),'iddocumentotipo', 'nombre'), array('prompt' => 'No corresponde')); ?>