Use Tbtogglecolumnin A Tbgridview Using A Carraydataprovider As Data Provider

Hi guys , im trying to create a personal access controll sistem , i’m listing all my crontrollers and models in a table, but i need the table to work with the CArrayDataProvider type , my table is like this:


$this->widget(

		'bootstrap.widgets.TbGridView',

		array(

			'type' => 'striped bordered',

			'dataProvider' =>  $dataprovider,

			'template' => "{items}\n{pager}",

			'columns' => array(

				array('name' => 'modulo', 'header' => 'Módulo'),

				array(

					'name' => 'acao', 

					'header' => 'Ação',

				),

				 array(

					'class' => 'bootstrap.widgets.TbToggleColumn',

					'toggleAction' => 'example/toggle',

					'name' => 'status',

					'header' => 'Toggle'

				),

				array(

					'class'=>'bootstrap.widgets.TbButtonColumn',

					'template'=>'{aceitar}',

					'buttons'=>array

					(

						'aceitar' => array

						(

							'label'=>'Aceitar',

							'imageUrl'=>Yii::app()->request->baseUrl.'/img/check.png',

							//'url'=> '#',

						),

					),

				

				),

			)

		)

	);

the dataProvider is like:




CArrayDataProvider Object

(

    [keyField] => status

    [rawData] => Array

        (

            [0] => Array

                (

                    [modulo] => acl

                    [acao] => actionIndex

                    [status] => 0

                )


            [1] => Array

                (

                    [modulo] => animais

                    [acao] => actionView

                    [status] => 0

                )


            [2] => Array

                (

                    [modulo] => animais

                    [acao] => actionCreate

                    [status] => 0

                )


            [3] => Array

                (

                    [modulo] => animais

                    [acao] => actionUpdate

                    [status] => 0

                )


            [4] => Array

                (

                    [modulo] => animais

                    [acao] => actionDelete

                    [status] => 0

                )


            [5] => Array

                (

                    [modulo] => animais

                    [acao] => actionIndex

                    [status] => 0

                )


            [6] => Array

                (

                    [modulo] => animais

                    [acao] => actionAdmin

                    [status] => 0

                )


            [7] => Array

                (

                    [modulo] => animais

                    [acao] => actionIndex

                    [status] => 0

                )


        )


    [caseSensitiveSort] => 1

    [_id:CDataProvider:private] => id

    [_data:CDataProvider:private] => 

    [_keys:CDataProvider:private] => 

    [_totalItemCount:CDataProvider:private] => 

    [_sort:CDataProvider:private] => 

    [_pagination:CDataProvider:private] => CPagination Object

        (

            [pageVar] => id_page

            [route] => 

            [params] => 

            [validateCurrentPage] => 1

            [_pageSize:CPagination:private] => 10

            [_itemCount:CPagination:private] => 0

            [_currentPage:CPagination:private] => 

            [_e:CComponent:private] => 

            [_m:CComponent:private] => 

        )


    [_e:CComponent:private] => 

    [_m:CComponent:private] => 

)

If i dont use the togle button column the code works fine , but when i put the togle column it shows this error: Trying to get property of non-object

C:\xampp\htdocs\yiinovo\framework\base\CComponent.php(612) : eval()'d code(1)

help me i realy need to use togle ,with arraydata provider , please help me i need to create this table to edit the permissions of the users.

Thanks Yii community.

Did you find some solution? Same error and have no idea how to fix it…

This worked for me ,when use Carraydataprovider as dataprovider we have to use this way …

       array(


	'class' => 'booster.widgets.TbToggleColumn',


	'toggleAction' => 'example/toggle',


	'name' => 'CHtml::encode($data["status"]',


	 'value' => '(CHtml::encode($data["status"]))',


	'header' => 'Toggle'


	),

i hope this will help you…