CGridView を使用していますが、フィールドの 1 つが配列です ['xx' ,'yy' , 'zz',...] 回答を検索したが見つからなかったことを表示するにはどうすればよいですか
DropDownlist のようなものを使用して配列内の値を表示することは可能ですか?
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)',
),
special_offer
モデルに静的配列があります。
値でフィルタリングします。これはドロップダウン リストの例です。
cgridview
次のように、内のフィールドを配列に置き換えました。
array(
'name' => 'special_offer',
'value' => 'Package::$special_offer[$data->special_offer]',
'filter' => Package::$special_offer,
),