Dependiendo de lo que quieras hacer voy dar 2 alternativas. pero igual mente algo para tener donde ir a sacarse las dudas
1.- Canal de youtube de Gustavo Salgado en español sigue creciendo con sus aporte
2.- repositorios de Gustavo muy bueno y con ejemplo de los videos
3.- Existe varias Extensiones ami me gusta multimodelform viene con sus explicación
Bueno vasta de esto y vamos una forma que creo te puede servir si tu ya tienes ingresados desde ante a las Personas, En este caso se pueden traer con funciones autocompletar o dropsown.
1.- Buscar la function relacions en el modelo Beneficios y comprovar que existe relacion como la que se indica si no crearla
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
'persona' => array(self::BELONGS_TO, 'Persona', 'persona_id'),
);
}
2.- crear el codigo autocompletar en el modelo Persona
public function suggest($keyword,$limit=20)
{
$models=$this->findAll(array(
'condition'=>'nombres LIKE :keyword',
'order'=>'persona_id',
'limit'=>$limit,
'params'=>array(':keyword'=>"%$keyword%")
));
$suggest=array();
foreach($models as $model) {
$suggest[] = array(
'label'=>$model->nombres.' - '.$model->paterno.' - '.$model->materno,
'value'=>$model->nombres, // value for input field
'id'=>$model->persona_id, // return values from autocomplete
'paterno'=>$model->paterno,
'materno'=>$model->materno,
);
}
return $suggest;
}
//dropdown persona para algo te puede servir
public static function getListInvestigador()
{
return CHtml::listData(Persona::model()->findAll(array('order'=>'paterno')),'persona_id','concatened');
}
/concatenacion delos campos***/
public function getConcatened()
{
return $this->nombres.' '.$this->paterno.' '.$this->materno;
}
3.- Ahora como utilizarlos ir protected/view/benercios
cambiar parametros "persona_id"
_form
<?php echo $form->dropDownList($model,'persona_id',CHtml::listData(
Persona::model()->findAll(array('order'=>'paterno')),
'persona_id','concatened'),array('empty'=>'Seleccione Persona'));?>
_view "persona_id"
<?php echo CHtml::encode($data->persona->nombres." ".$data->persona->paterno); ?>
admin
en el "persona_id" remplazar por el array
array(
'name'=>'persona_id',
'value'=>'$data->persona->nombres. " " .$data->persona->paterno. " " .$data->persona->materno',
'htmlOptions'=>array('style'=>'text-align: left','width'=>'90px'),
'type'=>'text',
),
view
cambiar "persona_id" en dentro del widget
'persona.nombres', //'nombre_de_la_tabla.campo_mostrar'
Bueno espero que este aporte sirva para varios y cualquier consulta primero ver los videos
bajar los ejemoplo y despues consultar jajaja