Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

2 Modelos para un solo formulario con Yii

Estas en el tema de 2 Modelos para un solo formulario con Yii en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Tengo un formulario que trabaja con 2 modelos diferentes, en este caso serian solicitantes con los campos cedula, nombres, apellidos, direccion, telefono, fecha de nacimiento ...
  #1 (permalink)  
Antiguo 07/02/2014, 12:43
 
Fecha de Ingreso: mayo-2012
Mensajes: 15
Antigüedad: 11 años, 11 meses
Puntos: 0
2 Modelos para un solo formulario con Yii

Tengo un formulario que trabaja con 2 modelos diferentes, en este caso serian solicitantes con los campos cedula, nombres, apellidos, direccion, telefono, fecha de nacimiento y solicitudes_sociales con los campos tipo de solicitus, fecha y descripcion, el problema se me presenta cuando registro todo el formulario ejemplo los datos de solicitante cedula=19956004, nombre= miguel apellido= lopez direccion=xxx, etc.. y los datos de solicitudes tipo de solicitud= solicitud de salud fecha=hoy descripcion= solicitud de ayuda para donacion de sillas de ruedas. Luego de la explicación presento el problema que es le siguiente cuando una persona se presenta mas de 1 vez a realizar 1 solicitud se registra 2 veces la misma persona en la tabla solicitantes por supuesto con una solicitud diferente, existe alguna posibilidad de que con Yii al yo escribir la cédula, si el solicitante existe me cargue los demás datos en el formulario y me bloquee los campos de texto (solo los del solicitante) y que a la hora de guardar, como ya existe me guarde solo los datos de la solicitud con el id del solicitante que estoy trayendo de la base de datos a través de la cédula?, de antemano muchas gracias.

aqui el codigo del formulario:

Código PHP:
<?php
/* @var $this SolicitudesSocialController */
/* @var $model SolicitudesSocial */
/* @var $form CActiveForm */
?>

<div class="form">

<?php 


$form
=$this->beginWidget('CActiveForm', array(
        
'id'=>'solicitudes-social-form',
        
// Please note: When you enable ajax validation, make sure the corresponding
        // controller action is handling ajax validation correctly.
        // There is a call to performAjaxValidation() commented in generated controller code.
        // See class documentation of CActiveForm for details on this.
        
'enableAjaxValidation'=>false,
)); 
if (
$a->isNewRecord==false) {$b=Solicitantes::model()->findByPk($a->solicitantes_id); }
echo 
$form->errorSummary(array($a,$B)); 
?>

        <p class="note">Campos con <span class="required">*</span> son Obligatorios.</p>

        <div class="row">
                <?php echo $form->labelEx($b,'cedula'); ?>
                <?php echo $form->textField($b,'cedula',array('size'=>12,'maxlength'=>12));?>
                <?php echo $form->error($b,'cedula'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($b,'nombre'); ?>
                <?php echo $form->textField($b,'nombre',array('size'=>60,'maxlength'=>100)); ?>
                <?php echo $form->error($b,'nombre'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($b,'apellido'); ?>
                <?php echo $form->textField($b,'apellido',array('size'=>60,'maxlength'=>100)); ?>
                <?php echo $form->error($b,'apellido'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($b,'nacimiento'); ?>
                <?php echo $form->textField($b,'nacimiento'); ?>
                <?php echo $form->error($b,'nacimiento'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($b,'edad'); ?>
                <?php echo $form->textField($b,'edad'); ?>
                <?php echo $form->error($b,'edad'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($b,'sexo'); ?>
                <?php echo $form->textField($b,'sexo'); ?>
                <?php echo $form->error($b,'sexo'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($b,'direccion'); ?>
                <?php echo $form->textField($b,'direccion',array('size'=>60,'maxlength'=>255)); ?>
                <?php echo $form->error($b,'direccion'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($b,'numero de casa'); ?>
                <?php echo $form->textField($b,'numerocasa',array('size'=>15,'maxlength'=>15)); ?>
                <?php echo $form->error($b,'numerocasa'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($b,'telefono'); ?>
                <?php echo $form->textArea($b,'telefono',array('rows'=>6'cols'=>50)); ?>
                <?php echo $form->error($b,'telefono'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($b,'email'); ?>
                <?php echo $form->textField($b,'email',array('size'=>60,'maxlength'=>255)); ?>
                <?php echo $form->error($b,'email'); ?>
        </div>
    
    <div class="row">
                <?php echo $form->labelEx($b,'circuitos_id'); ?>
                <?php echo $form->dropDownList($b,'circuitos_id'CHtml::listData(Circuitos::model()->findAll(), 'id''nombre'),array('empty'=>'Seleccione un circuito')); ?>
                <?php echo $form->error($b,'circuitos_id'); ?>
        </div>
    
    <div class="row">
                <?php echo $form->labelEx($a,'tipo_solicitudes_id'); ?>
                <?php echo $form->textField($a,'tipo_solicitudes_id',array('size'=>60,'maxlength'=>100)); ?>
                <?php echo $form->error($a,'tipo_solicitudes_id'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($a,'departamentos_id'); ?>
                <?php echo $form->textField($a,'departamentos_id',array('size'=>60,'maxlength'=>100)); ?>
                <?php echo $form->error($a,'departamentos_id'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($a,'solicitantes_id'); ?>
                <?php echo $form->textField($a,'solicitantes_id',array('size'=>60,'maxlength'=>100)); ?>
                <?php echo $form->error($a,'solicitantes_id'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($a,'fecha'); ?>
                <?php echo $form->textField($a,'fecha'); ?>
                <?php echo $form->error($a,'fecha'); ?>
        </div>
    
    <div class="row">
                <?php echo $form->labelEx($b,'usuarios'); ?>
                <?php echo $form->textField($b,'usuarios_id'); ?>
                <?php echo $form->error($b,'usuarios_id'); ?>
        </div>

        <div class="row">
                <?php echo $form->labelEx($a,'descripcion'); ?>
                <?php echo $form->textArea($a,'descripcion',array('rows'=>6'cols'=>50)); ?>
                <?php echo $form->error($a,'descripcion'); ?>
        </div>

        <div class="row buttons">
                <?php echo CHtml::submitButton($a->isNewRecord 'Crear' 'Guardar'); ?>
        </div>

<?php $this->endWidget(); ?>

</div><!-- form -->

Etiquetas: campo, formulario, modelos, nombre, php, tabla, usuario, yii
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:58.