public function loadModel($id) { $model = Unidad::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, Yii::t('app', 'The requested page does not exist.')); } return $model; }
<?php // variable para deshabilitar campos durante el update, en alta es false, en update en true $disabled=false; // update if (!$model->isNewRecord){ $disabled=true; echo TbHtml::labelTb('Unidad: ' .$model->idunidad0->nombre, array('color' => TbHtml::LABEL_COLOR_WARNING, 'style' => 'padding: 8px ;margin-bottom:10px;')); } else { // alta // determinar que unidades corresponden con el nomencladorplan $idunidades= Nomencladorplan::model()->search3($model->idosplan); echo $form->dropDownListControlGroup($model, 'idunidad', CHtml::listData(Unidad::model()->findAllByPk($idunidades,array('order'=>'nombre')),'idunidad', 'nombre')); } /* Cada cuenta de OOSS incluye profesionales: * ACREDITADO, * ACREDITADO Y NO ACREDITADO, * NO ACREDITADO, * NO DISCRIMINA. Si solo incluye profesionales acreditados; o solo incluye profesionales no acreditados; o no discrimina el arancel será uno solo. Pero si incluye profesionales acreditados y NO acreditados, habrá un arancel para profesionales acreditados y otro para profesionales NO acreditados/.*/
'enableClientValidation'=>true, )); echo $form->errorSummary($model); ?> <fieldset> <?php echo $form->textFieldControlGroup($model,'nombre',array('size'=>60,'maxlength'=>100)); ?> <?php echo "<div class='control-group'>"; echo TBHtml::tag("span", array('class' => 'control-label'),'Unidad'); echo "<div class='controls'>"; echo TBHtml::checkBoxList('idunidad', $unidades, CHtml::listData(Unidad::model()->findAll(array('order' => 'nombre')), 'idunidad', 'nombre')); echo "</div></div>"; ?> </fieldset> <div class="form-actions"> <?php echo TbHtml::submitButton(Yii::t('app', 'Save'),array( 'color' => TbHtml::BUTTON_COLOR_PRIMARY, 'size' => TbHtml::BUTTON_SIZE_SMALL, )); echo TbHtml::Button(Yii::t('app', 'Cancel'), array( 'submit' => array('/site/index'), 'style'=>'margin-left:30px;', 'color' => TbHtml::BUTTON_COLOR_DANGER,
'columns' => array( array( 'name' => 'idcantunidad', 'value' => 'isset($data->idcantunidad)?$data->idcantunidad:""', 'filter' => false, ), array( 'name' => 'cantidad', 'value' => 'isset($data->cantidad)?$data->cantidad:""', 'filter' => false, ), array( 'name' => 'idpractica', 'value' => 'isset($data->idpractica0->codigo)?$data->idpractica0->codigo:""', 'filter' => CHtml::listData(Practica::model()->findAll(array('order'=>'codigo')),'idpractica','codigo'), ), array( 'name' => 'idunidad', 'value' => 'isset($data->idunidad0->nombre)?$data->idunidad0->nombre:""', 'filter' => CHtml::listData(Unidad::model()->findAll(array('order'=>'nombre')),'idunidad','nombre'), ), array( 'class' => 'CButtonColumn', 'viewButtonImageUrl' => Yii::app()->baseUrl . '/css/gridviewstyle/images/' . 'gr-view.png', 'updateButtonImageUrl' => Yii::app()->baseUrl . '/css/gridviewstyle/images/' . 'gr-update.png', 'deleteButtonImageUrl' => Yii::app()->baseUrl . '/css/gridviewstyle/images/' . 'gr-delete.png', 'header' => Yii::t('app', 'Actions'), ), ), ));
<?php $i=0; // como puede haber mas de una fila en el formulario, se utiliza // $i para armar un arreglo con los campos, por ejemplo [$i][cantidad] // es para poder enviar varios registros para grabar de una vez en una tabla foreach ($cantunidad as $x){ // $cantunidad surge de la relacion entre practicas y cantunidades $nombreunidad=Unidad::model()->findByPk($x->idunidad)->nombre; echo "<div class='control-group'>"; echo TBHtml::tag("span", array('class' => 'control-label'),$nombreunidad); echo "<div class='controls'>"; echo $form->textField($x,"[$i]cantidad",array('value'=>$x->cantidad,'size'=>10,'maxlength'=>10)); echo $form->hiddenField($x,"[$i]idcantunidad",array('value'=>$x->idcantunidad)); echo "</div></div>"; $i++; } ?>