如何将数组作为CGridView中的字段处理

时间:2013-04-13 15:35:13

标签: yii cgridview

我正在使用CGridView,但其中一个字段是数组['xx','yy','zz',...] 如何显示我搜索到的答案但未找到答案

是否可以使用DropDownlist之类的东西来显示数组中的值

2 个答案:

答案 0 :(得分:0)

我在模型中有一个静态数组special_offer;

它将按值过滤;这是一个下拉列表示例;

我使用数组替换了cgridview中的字段,如下所示:

    array(
        'name' => 'special_offer',
        'value' => 'Package::$special_offer[$data->special_offer]',
        'filter' => Package::$special_offer,
    ),

答案 1 :(得分:0)

为了在CGridView列中使用dropDownList,您的数组需要是关联的。我建议您在模型中创建一个方法,将其转换为关联数组,如:

public function getAssociativeArray()
{
    $array = array('xx', 'yy', 'zz'); // or use an attribute value
    return array_combine(array_values($array), $array);
}

然后在CGridView中,将其添加为列,用您自己的名称替换模型/字段名称:

array(
    'name' => 'yourFieldName',
    'type' => 'raw',
    'value' => 'CHtml::activeDropDownList($data, "yourFieldName", YourModel::model()->associativeArray)', 
),