Ahe Galera blz
Estou com uma pequena duvida, como eu faço para validar e salvar dois model em um formulario. O caso é o seguinte estou desenvolvendo um sistema de avaliaçao onde tem uma pergunta e 5 opcoes, entao tenho 2 tabela uma da pegunta e outra da opcoes, entao crie um form assim:
<div class="row">
<?php echo $form->labelEx($model,'moduloid'); ?>
<?php echo CHtml::dropDownList('Perguntas[moduloid]',$model->moduloid, CHtml::listData($modulos,'id','nome'),array('empty' => '','style'=>'width:400px; margin-right:10px;')); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'questao'); ?>
<?php echo $form->textArea($model,'questao',array('rows'=>1, 'cols'=>80)); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'opcaocorreta'); ?>
<?php echo $form->textField($model,'opcaocorreta',array('size'=>1,'maxlength'=>1)); ?>
</div>
<div class="row">
<label>Opção A</label>
<?php echo $form->textArea($opcoes,'opcoes',array('rows'=>1, 'cols'=>80)); ?>
<?php echo $form->textField($opcoes,'letra',array('size'=>1,'maxlength'=>1,'value'=>'A')); ?>
</div>
<div class="row">
<label>Opção B</label>
<?php echo $form->textArea($opcoes,'opcoes',array('rows'=>1, 'cols'=>80)); ?>
<?php echo $form->textField($opcoes,'letra',array('size'=>1,'maxlength'=>1,'value'=>'B')); ?>
</div>
<div class="row">
<label>Opção C</label>
<?php echo $form->textArea($opcoes,'opcoes',array('rows'=>1, 'cols'=>80)); ?>
<?php echo $form->textField($opcoes,'letra',array('size'=>1,'maxlength'=>1,'value'=>'C')); ?>
</div>
<div class="row">
<label>Opção D</label>
<?php echo $form->textArea($opcoes,'opcoes',array('rows'=>1, 'cols'=>80)); ?>
<?php echo $form->textField($opcoes,'letra',array('size'=>1,'maxlength'=>1,'value'=>'D')); ?>
</div>
<div class="row">
<label>Opção E</label>
<?php echo $form->textArea($opcoes,'opcoes',array('rows'=>1, 'cols'=>80)); ?>
<?php echo $form->textField($opcoes,'letra',array('size'=>1,'maxlength'=>1,'value'=>'E')); ?>
</div>
E no controler assim:
public function actionCreate()
{
$model=new Perguntas;
$opcoes = new Opcoes;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Perguntas']))
{
$model->attributes=$_POST['Perguntas'];
if($model->save())
$this->redirect(array('view','id'=>$model->id));
}
$this->render('create',array(
'model'=>$model,
'modulos'=> Modulos::model()->findAll(),
'opcoes'=> $opcoes,
));
}
Model Pergunta e Opcoes:
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('moduloid', 'numerical', 'integerOnly'=>true),
array('opcaocorreta', 'length', 'max'=>1),
array('questao', 'safe'),
array('id, questao, moduloid, opcaocorreta', 'required'),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('id, questao, moduloid, opcaocorreta', 'safe', 'on'=>'search'),
);
}
Opcoes::::::::::::::::::::
return array(
array('perguntas_id, letra, opcoes', 'required'),
array('perguntas_id', 'numerical', 'integerOnly'=>true),
array('letra', 'length', 'max'=>1),
array('opcoes', 'safe'),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('id, opcoes, perguntas_id, letra', 'safe', 'on'=>'search'),
);
Estou en duvida tambem na questao de salvar todas opcoes e validar todos os 5 campos.
Alguem pode me ajudar
Valew