Ayuda 2 Modelos en un form

Hola quiero mostrar 2 modelos en una vista y no pasa el primer if del isset no me reconoce la relacion parece el DatosItem haber si alguien puede ayudarme gracias


public function actionCreate()

	{

		$model = new Sc;

		$sub = new DatosItem;


		// Uncomment the following line if AJAX validation is needed

		$this->performAjaxValidation(array($model, $sub));


		

			

		

		if (isset ($_POST['Sc'], $_POST['DatosItem'])) // No reconoce el DatosItem

		{

		

			

			$model->attributes=$_POST['Sc'];

			$sub->attributes=$_POST['DatosItem'];

			

			$valid=$model->validate();

			$valid=$sub->validate() && $valid;

			

		if($valid)	

		{	

			if($model->save(false))

			{	

			    $sub->iddatos_item = $model->id_sc;

			    $sub->save(false);

			    $this->redirect(array('view','id'=>$model->id_sc));

			}

			    

		}

		}

		

		$this->render('create',array(

			'model'=>$model,

			'sub' => $sub,

		)); 

	}

dejo la relacion:


public function relations()

	{

		return array(

			'iddatosItem' => array(self::BELONGS_TO, 'DatosItem', 'iddatos_item'),

		);

	}



que error te da?

estas pasando el segundo modelo desde create.php a _form.php?

‘sub’ => $sub,

podes poner el código de

  • _form.php
  • create.php?

lo que me pasa exactamente la pagina carga funciona bien, pero al momento de presionar guardar no guarda como que carga de nuevo el formulario de crear, y por lo que deduje no pasa el primer if de la funcion create, creo que hay con la variable de mi modelo "DatosItem" porque al sacarla del if, me tira error x el siguiente datositem de todas formas dejo el codigo del form y create.

_form:




<div class="form">


<?php $form=$this->beginWidget('CActiveForm', array(

	'id'=>'sc-form',

	'enableAjaxValidation'=>false,

)); ?>


	<p class="note">Los campos con <span class="required">*</span> son requeridos.</p>


	<?php echo $form->errorSummary(array($model, $sub)); ?>


	<div class="row">

		<?php echo $form->labelEx($model,'titulo'); ?>

		<?php echo $form->textField($model,'titulo',array('size'=>45,'maxlength'=>45)); ?>

		<?php echo $form->error($model,'titulo'); ?>

	</div>




        <div class="row">

       

	     <?php echo $form->labelEx($sub, 'posicion'); ?>

	     <?php echo $form->textField($sub,'posicion',array('size'=>45,'maxlength'=>45)); ?>

	     <?php echo $form->error($sub, 'posicion'); ?>

	      

	</div>




<div class="row buttons">

		<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>

</div>	


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


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




Create:


<?php

$this->breadcrumbs=array(

	'Scs'=>array('index'),

	'Create',

);


$this->menu=array(

	array('label'=>'List Sc', 'url'=>array('index')),

	array('label'=>'Manage Sc', 'url'=>array('admin')),

);

?>


<h1>Create Sc</h1>


<?php echo $this->renderPartial('_form', array('model'=>$model, 'sub'=>$sub)); ?>




Piolamon, puede que sea una bobada y que ya lo arreglaste pero el if no te va a pasar si tienes

if (isset ($_POST[‘Sc’], $_POST[‘DatosItem’])) deberia ser if (isset ($_POST[‘Sc’] && $_POST[‘DatosItem’]))…

Quiza se te paso esa coma (,). Saludos