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

Yii 如何在CGridView中将数组作为字段处理,yii,cgridview,Yii,Cgridview,我使用的是CGridView,但其中一个字段是数组['xx','yy','zz',…] 如何显示我搜索了答案但未找到 是否可以使用DropDownlist之类的东西来显示数组中的值我在一个模型中有一个静态数组特价 它将按值进行过滤;这是一个下拉列表示例 我用数组替换了cgridview中的一个字段,如下所示: array( 'name' => 'special_offer', 'value' => 'Package::$special_offe

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


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

我在一个模型中有一个静态数组
特价

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

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

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

为了在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)', 
),

如果值是数组,为什么要使用下拉列表?在这种情况下没有什么可选择的。我宁愿使用字符串作为逗号分隔的数组项列表。您可以使用getter方法,类似于下面描述的@frostyterrier。