ocultar columnas en Gridview en función de un valor

Hola comunidad

trabajando en Yii 1.x he visto que existe un parámetro dentro del gridview "visible" con dos posibles valores "true" o "false" que muestran o esconden la columna

a través de una función dentro del modelo estoy intentado que el valor "visible" dentro de la columna tome un valor pasándolo desde el modelo para ocultar o mostrar la columna en función de lo existen en otro modelo relacionado.




public function getVisible(){

          

           $model = new TbEntiPerServicio;

           $mostrar = 'false';          

           $valor1 = $this->ID_SERVICIO; //numero del servicio en el modelo

           $valor2 = $this->iDSERVICIO->VISIBLE; //estado del servicio viene de otro modelo relacionado 

           $valor3 = $this->iDSERVICIO->ID_SERVICIOS; //numero de servicio del otro modelo relacionado

           

           if ($valor1 == $valor3 && $valor2 == 1){

                 $mostrar = 'true';

                    return self:: $mostrar;

            }

        }




y en el gridvew tengo lo siguiente para cada columna





array (

                                

                                'name'=>'ID_SERVICIO',

                                '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")))',

                                //'value'=>'$data["1"]',

                                'visible'=>'$data->getVisible()', //opcion para ocultar columna 

                                'type'=>'raw',

                               ),




he probado tanto pasando el valor dentro $mostrar de la llamada a la función. pero la columna no se oculta pese a tener el valor "visible" = 1

Lo que está devolviendo fu función es un string, no un valor boleano. Debes quitar las comillas de ‘true’ y ‘false’.

Gracias Por contestar,

me ocurre esto según lo que he leído, el valor de parámetro del gridview “visible” es ‘visible’=> ‘true’, o 'visible=> ‘false’,

si dentro del gridview tengo ‘$data->getVisible()’, no hace nada y muestra la columna tanto si en la función pongo comillas o no.

si pongo ‘visible’=>$model->getVisible(), con el valor ‘true’ con comillas o sin ellas obtengo.

Error 500

Trying to get property of non-object

¿que estoy haciendo mal? o que no entendí…