Problemas de autocomplete desde otro modelo

Hola Comunidad

Tengo la siguientes tablas

Tb_entidades_personas

ID_ENTI_PER (PK)

iD_Persona (FK)

…

Tb_Personas

id_persona (PK)

nombre

apellido1

apellido2

…

tb_personas_servicios

id_servicio (PK)

ID_enti_per (FK)

…

Desde el formulario de alta en un modelo que guarda la relación de las personas con unos servicios, estoy intentando crear un autocomplete para que busque por el nombre y apellidos de la persona (tb_personas) y tome el id de la tabla (tb_entidades_personas) para que este sea guardado en el formulario.

dentro del controller tengo hecha esta función con en base a un ejemplo visto en el foro.




public function actionBuscaPersonas()

        {

            $term = Yii::app()->getRequest()->getParam('term',false);

            

            $users = Yii::app()->db->createCommand()

                    ->select('ID_ENTI_PER')

                    ->from ('tb_entidades_personas ,tb_personas')

                    ->join ('tb_personas','tb_entidades_personas.id_persona = tb_personas.id_persona')

                    ->where ('LOWER(NOMBRE) like LOWER(:term) or LOWER(APELLIDO_1) like LOWER(:term) or (APELLIDO_2) like LOWER(:term)',array(':term'=> '%'.$_GET['term'].'%'))

                    ->queryAll();

              

            $arr=array();

            foreach ($users as $user)

            {

                $arr[]=array(

                    'label'=>($model->NOMBRE.' '.$model->APELLIDO_1.' '.$model->APELLIDO_2.''), // label for dropdown list

                    'value'=>($model->NOMBRE.' '.$model->APELLIDO_1.' '.$model->APELLIDO_2.''), // value for input field

                    'id'=>$model->ID_ENTI_PER, // return value from autocomplete

                          );

            }

            echo CJSON::encode($arr);

            Yii::app()->end();

            }



he comprobado la query por fuera mediante un gestor de BD y muestra los resultados correctos.

he dado los correspondientes permisos dentro de las rules.




public function accessRules()

	{

		return array(

			array('allow',  // allow all users to perform 'index' and 'view' actions

				'actions'=>array('index','view','BuscaPersonas'),

				'users'=>array('*'),

			),

			array('allow', // allow authenticated user to perform 'create' and 'update' actions

				'actions'=>array('create','update','BuscaPersonas'),

				'users'=>array('@'),

			),

			array('allow', // allow admin user to perform 'admin' and 'delete' actions

				'actions'=>array('admin','delete','BuscaPersonas'),

				'users'=>array('admin'),

			),

			array('deny',  // deny all users

				'users'=>array('*'),

			),

		);

	}



en el model he creado las variables publicas para el autocomplete.




 public $BuscaPersonas;



y además




 public function afterFind()

      {

        $this->BuscaPersonas = $this->ID_ENTI_PER;

               

        } 




y finalmente en el form para el campo





<div class="row">

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

                <?php echo $form->HiddenField($model, 'ID_ENTI_PER'); 

                  $this->widget('zii.widgets.jui.CJuiAutoComplete',

                          array(

                            'model'=>$model,

                            'attribute'=>'BuscaPersonas',

                            'source'=>$this->createUrl('tbPersonasServicios/BuscaPersonas'),

                            'htmlOptions'=>array('placeholder'=>'Persona...','style'=>('height:20px;size:200px;')),

                            'options'=>

                               array(

                                     'showAnim'=>'fold',

                                     'size'=>'130',

                                     'minLength'=>'3',

                                     'select'=>"js:function(event, ui) {

                                        $('#".CHtml::activeId($model,'ID_ENTI_PER')."').val(ui.item.id);

                                               }"

                                      ),

                            )); 

                ?>

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



cuando cumplimento el campo para se realice y muestre los resultados no hace nada… :( :(

alguna idea de que me he dejado por hacer. se puede hacer de otra forma?