簡體   English   中英

如何在Yii中使用DataProvider和CGridView在數組數據中顯示數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM