Yii:TbEditableColumn如何传递$ data-> id

I am trying to use the TbEditableColumn and the type select to have a pulldown menu. The pulldown menu I need is filled by a function that I call. That is working for basic cases. But for a another column, the pulldown values are dependent from the row in which it is (grid-view). So for example the function I want to call to fill the pulldown and pass the id of the current data is:

$model->getPulldownValues($data->id)

But that throws an error that the variable $data is not defined. The funny part is that outside the editable array, I can use $data as expected. See example below:

Any ideas?

$this->widget('bootstrap.widgets.TbExtendedGridView', array(
     'type' => 'striped bordered',
     'id'=>'order-image-grid',
     'dataProvider'=>$model->search(),
     'ajaxUpdate'=>true,
     'template' => "{items}
{extendedSummary}",
     'rowCssClassExpression'=>'"FMDBGridColumn".$data->order_error',
     'columns'=>array(
        array(
                'class' => 'bootstrap.widgets.TbEditableColumn',
                'name' => 'streets',
                'htmlOptions'=>array('width'=>'150'),
                'value' => 'CHtml::value($data, "street")',
                'editable' => array(
                    'type' => 'select',
                    'source' => CHtml::listData($model->availableStreets($data->id), 'id', 'street'), 
                    'url' => $this->createUrl('cities/editable'),
                    'placement' => 'right',
                )
            ),
    ),
)); 

you have to consider that $data in 'value' => 'CHtml::value($data, "street")', is referring to a model object which $model->search() is providing, but $data outside of the grid is different(You haven't shared what that is).

Try to change method "availableStreets" into getter, e.g.:

public function getAvailableStreets()
{
    // we don't need to send id as parameter of method, 
    // we can get it directly from model
    // e.g.: $id = $this->id;
    // 
    // put your code here
}

then, in widget, use property

$model->availableStreets 

instead of method

$model->availableStreets($id)

Also you can put CHtml::listData() into your getter and use

'source' => 'availableStreets',

instead of

'source' => CHtml::listData($model->availableStreets($data->id), 'id', 'street'),