Boa tarde pessoal,
Reli o código dezenas de vezes para tentar ver algum problema e não consegui.
o _form.php é esse:
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'endereco-form',
'enableAjaxValidation'=>true,
)); ?>
<?php echo $form->errorSummary(array($model,$modelBairro)); ?>
<div class="row">
<?php echo $form->labelEx($model,'logradouro'); ?>
<?php echo $form->textField($model,'logradouro',array('size'=>60,'maxlength'=>100)); ?>
<?php echo $form->error($model,'logradouro',array('class'=>'erroneous')); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'numero'); ?>
<?php echo $form->textField($model,'numero'); ?>
<?php echo $form->error($model,'numero',array('class'=>'erroneous')); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'complemento'); ?>
<?php echo $form->textField($model,'complemento',array('size'=>60,'maxlength'=>100)); ?>
<?php echo $form->error($model,'complemento',array('class'=>'erroneous')); ?>
</div>
<div class="row">
<?php echo CHtml::label('Estado',''); ?>
<span class="required">*</span>
<?php echo CHtml::dropDownList(
'nEstado',
'',
CHtml::listData(Estado::model()->findAll(), 'id', 'nome'),
array(
'empty'=>'estado',
'ajax' => array(
'type'=>'POST',
'url'=>CController::createUrl('endereco/DynamicCitiesAddress'),
'update'=>'#nCidade',
)));
?>
</div>
<div class="row">
<?php echo CHtml::label('Cidade',''); ?>
<span class="required">*</span>
<?php echo CHtml::dropDownList('nCidade','', array(),array(
'empty'=>'cidade',
'ajax' => array(
'type'=>'POST',
'url'=>CController::createUrl('endereco/DynamicNeighborhoodAddress'),
'update'=>'#neighborhood',
)));
?>
</div>
<div class="row">
<?php echo $form->labelEx($modelBairro,'nome'); ?>
<span id="neighborhood">
<?php echo $form->textField($modelBairro,'nome'); ?>
</span>
<?php echo $form->error($modelBairro,'nome',array('class'=>'erroneous')); ?>
</div>
<div class="row">
<?php echo $form->textField($model,'idBairro'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'cep'); ?>
<?php echo $form->textField($model,'cep'); ?>
<?php echo $form->error($model,'cep',array('class'=>'erroneous')); ?>
</div>
<div class="row buttons">
<?php echo CHtml::button('Voltar',array('onclick'=>'window.history.back()','class'=>'submit')); ?>
<?php echo CHtml::submitButton($model->isNewRecord ? 'Gravar' : 'Gravar',array('class'=>'submit')); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
o create.php:
<?php echo $this->renderPartial('_form', array('model'=>$model,'modelBairro'=>$modelBairro)); ?>
e o controller EnderecoController.php
public function actionCreate()
{
$model=new Endereco;
$modelBairro=new Bairro;
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation(array($model,$modelBairro));
if(isset($_POST['Endereco']))
{
$model->attributes=$_POST['Endereco'];
$modelBairro->attributes=$_POST['Bairro'];
if($model->save()){
$owner = Yii::app()->user->id;
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
'modelBairro'=>$modelBairro,
));
}
?>
O navegador me retorna o seguinte erro:
Undefined index: Bairro
na linha
$modelBairro->attributes=$_POST['Bairro'];
Já fiz outros forms com dois Models em outros lugares do projeto dessa mesma forma e funciona normal…