[SOLUCIONADO] Error al pasar datos entre controlador y vista

Hola gente!

gracias por vuestro tiempo.

tengo el siguiente problema, trabajo con yii 1.x y tengo un controlador, desde una vista con un link se pasan parametros para realizar una consulta con mas detalle. El valor de la variable id_servicio siempre tiene valor ‘1’ yno consigo que el controlador le pase el valor que se le da desde la url.

Dónde estoy metiendo la pata

esta es la llamada donde paso los parametros.




'value'=>'CHtml::link($data["1"],Yii::app()->createUrl("/TbEntiPerServicio/detalleview", array("id"=>$data["ID_ENTI_PER_SERV"],"id_entidad"=>$data["ID_ENTI"],"id_servicio"=>"1")))',




Este es el controlador,tengo definidas las variables





        public $id_entidad = null;

        public $id_servicio = null;

        public $id = null;

....




 public function actionDetalleview() 

        {

            $id = $_GET['id'];

            $id_entidad =$_GET['id_entidad'];

            $id_servicio = $_GET['id_servicio'];

            $model = TbEntiPerServicio::model()->findByPk($id);

                            

                  $this->render('detalleview', array('model'=>$model ,'id_entidad'=>$id_entidad,'id_servicio'=>$id_servicio));

        

        }




esta es la función en el modelo para realizar una busqueda.




 public function ListaUsuariosServicio() 

       {

           

               $model = new TbEntiPerServicio;

               $id_servicio = $this->ID_SERVICIO;

               $id_entidad = $this->ID_ENTI;

               

               var_dump($id_entidad);

               var_dump($id_servicio); //siempre tiene valor 1

               

                $criteria = new CDbCriteria();

                $criteria->condition = "ID_SERVICIO=:ID_SERVICIO AND ID_ENTI=:ID_ENTIDAD";

                $criteria->params = array(':ID_SERVICIO' =>$id_servicio, 'ID_ENTIDAD'=>$id_entidad);


                $sort = new CSort(); 

                $sort->defaultOrder = array('ID_ENTI  asc');


                $model = TbEntiPerServicio::model()->findAll($criteria);

              

            return new CActiveDataProvider($this, array(

			'criteria'=>$criteria,

                        'sort'=>$sort));

          

       }




¿Como es el enlace generado(el href)?

hola!

Sucotronic y gracias

la llamada la inicio de desde una celda de un gridview.

te refieres a esto





array (

                                                'header'=>'servicio AA',

                                                'name'=>'ID_SERVICIO',

                                                'type'=>'raw',

                                                'value'=>'CHtml::link($data["1"],Yii::app()->createUrl("/TbEntiPerServicio/detalleview", array("id"=>$data["ID_ENTI_PER_SERV"],"id_entidad"=>$data["ID_ENTI"],"id_servicio"=>"1")))',

                                                

                                                'type'=>'raw',







http://localhost/bbdd/index.php/TbEntiPerServicio/detalleview/4?id_entidad=183&id_servicio=2







'urlManager'=>array(

			'urlFormat'=>'path',

			'rules'=>array(

				'<controller:\w+>/<id:\d+>'=>'<controller>/view',

				'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

				'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

			),

		),



Hola

Lo solucioné, tenía mal asignadas las variables dentro del controller.




public function actionDetalleview($id_entidad=null,$idservicio=null) 

        {

            $model= new TbEntiPerServicio;

                        

            $id_entidad =$_GET['id_entidad'];

            $id_servicio = $_GET['id_servicio'];

            

              $model->ID_ENTI = $id_entidad;

              $model->ID_SERVICIO =$id_servicio;

                                                  

             $this->render('detalleview', array('model'=>$model, 'id_entidad'=>$id_entidad,'id_servicio'=>$id_servicio));          

        

        }




saludos y buena codificación…