Hello guys.
Today I needed to view arrays through CGridView. I had to write two classes: ArrayDataProviderEx and ArrayModel.
$a = array(
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3',
);
$dataProvider=new ArrayDataProviderEx($a, ArrayDataProviderEx::ARRAY_ASSOC);
// .....
// somewhere in view
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'placeholders-values',
'dataProvider'=>$dataProvider,
'columns'=>array(
'key',
'value',
),
));
or
$a = array(
array('color'=>red, 'model'=>'BMV Z5'),
array('color'=>silver, 'model'=>'Audi A6'),
array('color'=>black, 'model'=>'Audi A8'),
);
$dataProvider=new ArrayDataProviderEx($a, ArrayDataProviderEx::ARRAY_ORDER);
// .....
// somewhere in view
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'placeholders-values',
'dataProvider'=>$dataProvider,
'columns'=>array(
'color',
'model',
),
));
More details available on my site.
If you are interested in these classes please visit ArrayDataProviderEx