[英]How can I use DataProvider and CGridView in Yii to display array in array data?
現在我有這樣的代碼:
$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,其中'user_id'=>'1'?
除了自定義該值,無法在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)'
),
),
));
結果應該是:david,hawords
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.