现在我有这样的代码:
$testArray1 = array(array(
'user_id'=>'1',
'name'=>array(
'david',
'haword'),
),
array(
'user_id'=>'2',
'name'=>'andrew',
),
);
print_r($testArray1);
$arrayDataProvider = new CArrayDataProvider ($testArray1,array(
//'KeyField'=>'_id',
'pagination'=>array(
'pageSize'=>10,
),
'sort'=>array(
),
));
$this->widget('zii.widgets.grid.CGridView', array(
'id' =>'BCImported-grid',
'dataProvider' =>$arrayDataProvider,
'columns' =>array('name'),
));
这是我的结果:
所以表单只显示name = andrew,而name = david和haword不显示。 如何在Yii中使用DataProvider和CGridView在数组数据中显示数组,例如name = david和haword where' user_id' =>' 1'?
答案 0 :(得分:0)
除了自定义该值之外,无法在CGridView中显示数组。 在模型中创建一些静态函数
public static function implodeName($data)
{
if(isset($data['name'])) {
if(is_array($data['name'])) {
return implode(',', $data['name']);
}
else {
return $data['name'];
}
}
return '';
}
然后在CGridView中会像这样
$this->widget('zii.widgets.grid.CGridView', array(
'id' =>'BCImported-grid',
'dataProvider' =>$arrayDataProvider,
'columns' =>array(
array(
'header' => 'Names',
'name' => 'name',
'value' => 'YourModelName::implodeName($data)'
),
),
));
,结果应该是: 大卫,hawords