Dropdownlist estatico desde el model

Tengo esto en mi modelo,


	public function getDestinatariosOptions(){

		return array(	'1' => 'Autoridades de Organos / Entes', 

						'2' => 'Autoridades de Dependencias', 

						''=>array(

						'3'=>'Administracion',

					            '4'=>'Recursos Humanos',

					            '5'=>'Tecnologia'),

						);

	}

y esto en mi form


<div class="row">

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

		<?php echo CHtml::dropDownList('destinatario', $model, $model->DestinatariosOptions,

              array('empty' => 'Seleccione un Destinatario...',

					'style'=>"width:60%")); 

		?>

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

</div>

Porque en base de datos no me guarda el 1,2,3,4,5?? siempre me guarda vacio >.<


 <?php echo CHtml::dropDownList('destinatario', $model, $model->DestinatariosOptions,

              array('empty' => 'Seleccione un Destinatario...',

                                        'style'=>"width:60%")); 

                ?>

El código anterior esta enviando una variable por post llamada "destinatario", asi que paara pasar el valor al model debes hacer lo siguiente en el controller.


$model->destinatario=$_POST['destinatario'];

Aunque yo creo que para crear el dropdownlist deberias usar


 <?php echo $form->dropDownList($model, 'destinatario', $model->DestinatariosOptions,

              array('empty' => 'Seleccione un Destinatario...',

                                        'style'=>"width:60%")); 

                ?>

De esa forma se estaria enviando un sola variable que seria el array con todos los inputs del formulario, y asi en el controller solo tendrias que hacer.


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

Disculpa, exactamente en que parte del controllador se debe colocar el

[code]

$model->attributes=$_POST[‘TuModel’];








este es mi _form




div class=“row”>

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

	<?php echo $form->dropDownList($model, 'destinatario', $model->DestinatariosOptions,

          array('empty' => 'Seleccione un Destinatario...',

                                    'style'=>"width:60%")); 

    ?>

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

</div>









<div class="row">

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

	<?php echo $form->dropDownList($model, 'destinatario', $model->CintillosOptions,

          array('empty' => 'Seleccione un Destinatario...',

                                    'style'=>"width:60%")); 

    ?>	

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

</div>







y este mi model




public function getDestinatariosOptions(){

	return array(	'1' => 'Autoridades de Organos / Entes', 

					'2' => 'Autoridades de Dependencias', 

					''=>array(

							'3'=>'Administracion',

				            '4'=>'Recursos Humanos',

				            '5'=>'Tecnologia'),

					);

}



public function getCintillosOptions(){

	return array(	'1' => 'Cintillo 1',

					'2' => 'Cintillo 2',

					'3' => 'N/A',

			);

}







Donde le puedo decir que devuelva el value del select en el formulario y lo almacene... ya que CintilloOptions y DestinatarioOptions no son tablas catalogo, sino que yo pongo el contenido de las mismas de manera manual.

Hola,

Puedes definir los valores en el modelo dentro del array de manera constante para diferenciar mejor el nombre/valor de los campos del array:




        const ORGANOS=0;

	const DEPENDENCIAS=1;

        //aca los demas campos

	public function getDestinatariosOptions()

	{

		return array(

			self::ORGANOS=>'Autoridades de Organos / Entes',

			self::DEPENDENCIAS=>'Autoridades de Dependencias',

                        //Asi con los demas

		);

	}



y luego en el form del view los llamas en el dropdown




       <?php echo $form->dropDownList($TuModelo,'id',$TuModelo->getDestinatariosOptions())); ?>



como ves es cuestion de ordenar un poco B)