0

CGridView を使用していますが、フィールドの 1 つが配列です ['xx' ,'yy' , 'zz',...] 回答を検索したが見つからなかったことを表示するにはどうすればよいですか

DropDownlist のようなものを使用して配列内の値を表示することは可能ですか?

4

2 に答える 2

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)', 
),
于 2013-04-13T18:57:48.543 に答える
0

special_offerモデルに静的配列があります。

値でフィルタリングします。これはドロップダウン リストの例です。

cgridview次のように、内のフィールドを配列に置き換えました。

    array(
        'name' => 'special_offer',
        'value' => 'Package::$special_offer[$data->special_offer]',
        'filter' => Package::$special_offer,
    ),
于 2013-04-13T18:34:18.707 に答える