CGridView, параметры для кнопок

банальный вопрос, понадобилось в параметр для ссылки добавить значение не из $data.

Знаю можно через Ж сделать использую функцию. но видимо я просто не знаю как сделать это правильно.

прошу помощи.

Вот пример того что надо и он не работает




        array(   

            'class'=>'CButtonColumn',

            'template'=>'{updatefile} {del}',

            'buttons'=>array(

            		'updatefile' => array(

            			'label' => 'Редактировать',

        				'imageUrl' => '/images/admin/update.png',

            			'url'	=> 'Yii::app()->controller->createUrl("updatefile", array("id" => $data->id, "doc_id" => $_GET["id"]))'

            		),



весь нюанс вот тут


"doc_id" => $_GET["id"]

пока могу решить через




        array(   

            'class'=>'CButtonColumn',

            'template'=>'{updatefile} {del}',

            'buttons'=>array(

            		'updatefile' => array(

            			'label' => 'Редактировать',

        				'imageUrl' => '/images/admin/update.png',

            			'url'	=> 'Helper::makeLink($data->id)'

            		),

...

class Helper {

    public static function makeLink($id) {

         return Yii::app()->controller->createUrl("updatefile", array("id" => $id, "doc_id" => $_GET["id"]));

    }

}



но мне кажется этот вариант чертовски убогий и не удобный (

С $_GET таки работает.

Но вопрос все равно актуален, как быть если переменная приходит из контроллера или объявляется выше, перед инициализацией грида ?!

Попробуй доставать Yii::app()->request->id или если из контролера Yii::app()->controller->

так я добавил ниже что с $_GET работает )

апну

неужели нет решения?

Или я что-то не понимаю, или одно из двух. Если переменная объявляется выше, что мешает её вставить?




$myVar=123;


.....


 array(   

            'class'=>'CButtonColumn',

            'template'=>'{updatefile} {del}',

            'buttons'=>array(

                        'updatefile' => array(

                                'label' => 'Редактировать',

                                        'imageUrl' => '/images/admin/update.png',

                                'url'   => 'Yii::app()->controller->createUrl("updatefile", array("id" => $data->id, "doc_id" => '.$myVar.'))'

                        ),



ведь по сути все что мы передаем в одинарных кавычках это строка, которая будет пропущена через функцию eval().