Buttons dinamicos en CButtonColumn

Muy Buenas!

mi pregunta es la siguiente, Estoy usando un CGridView y me gustaría mostrar un botón activar o desactivar dependiendo de como esté el registro en la base de datos. Para esto estoy utilizando la propiedad buttons como se muestra a continuación:




array(

     'class'=>'CButtonColumn',

     'template'=>'{activar}',

     'buttons'=>array

         (

	    'activar' => array

		(

		    'label'=>'activar/desactivar',

		    'imageUrl'=>$model->activeImg('$data->id'),

		    'url'=>'"#"',	   

		),

          ),

),




El problema es que no puedo acceder al id dataprovider (’$data->id’)pues imageUrl no acepta una expresión php.

¿Cómo puedo hacer para mostrar dinamicamente el boton dependiendo de cómo esté el registro en la bd?

Muchas gracias por leer y cualquier ayuda es bienvenida

Saludos

Que onda… espero estes bien, a tu pregunta debes de tener toda la instrucción en una cadena en su defecto para que te reconozca el $data debe de estar indicado de esta forma




array(

     'class'=>'CButtonColumn',

     'template'=>'{activar}',

     'buttons'=>array

         (

            'activar' => array

                (

                    'label'=>'activar/desactivar',

                    'imageUrl'=>'$model->activeImg($data->id)',

                    'url'=>'"#"',          

                ),

          ),

),



La cosa aquí es que tu instrucción tu llamada a algo en tu casa que estas pidiendo el id se debe de indicar de sa forma porque sino no te reconocera correctamente la variable $data por ejemplo una url con imágen que puse para mandar llamar a los reportes la indique de esta manera.




//Ten en cuenta que esto esta dentro de tu clase CButtonColumn es como tu estas indicando la imágen.

'imprimir'=>array(

		'label'=>'Imprimir',	

                'url'=>'Yii::app()->controller->createUrl("programa/imprimir",array("id"=>$data->t01_id))',

			"options"=>array(

				"title"=>"Imprimir PDF",

				"target"=>"_blank",

				),

			),



Si te fijas mi llamada de url la tengo dentro de apostrofes pero ten en cuenta que entre comillas dobles no reconoce bien las instrucciones indicadas… no se a que se deba, espero te sirva. Saludos…

Gracias por tu respuesta shaolin…

El problema está en la propiedad imageUrl, si lo coloco todo con comillas, automáticamente lo toma como la ruta de la imagen, es decir renderiza la view de la siguiente forma:




<img src="$model->activeImg($data->id)" alt="activar/desactivar">



Sin embargo en la propiedad url, no hay problemas