1

データベースに 0 または 1 を格納できるフィールド ステータスがあります。0 = 非アクティブ、1 = アクティブ。yii でコンボボックスを作成すると、admin.php ファイルは適切に検索されますが、コンボボックスに表示されるテキストは 0 と 1 ですが、In-Active と Active が表示されますが、オプション値では 0 と 1 である必要があります。私のコード...

 $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'cities-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'country.countryname'=>array('name'=>'countryid', 'value'=>'$data->country->countryname', 'filter'=>CHtml::listData(Countries::model()->findAll(array('order'=>'countryname')), 'id', 'countryname')),

'cityname',
'citycode',
'citystatus'=>array('name'=>'citystatus', 'value'=>'$data->setCityStatus() . $data->getCityStatus($data->citystatus)', 'filter'=>CHtml::listData(Cities::model()->findAll(array()), 'citystatus', 'citystatus')),
'citycoords',

array(
'class'=>'CButtonColumn',
'template'=> ($iHasFullAccess == 1 ? '{view}{update}{delete}' :  '{view}') ,
),
),
)); 
?>
4

3 に答える 3

0

CgridViewリストのcitystatusオプションを以下のように変更してみてください

'citystatus'=>array('name'=>'citystatus', 'value'=>'Cities::getCityStatus($data->citystatus)', 'filter'=>CHtml::listData(Cities::model()->findAll(array()), 'citystatus', 'citystatus')),

CitiesモデルのgetCityStatus関数を次のように変更します

function getCityStatus($index){
  $status = array('Inactive','Active');
  return $status[$index];
}
于 2012-10-14T10:00:51.637 に答える
0

CGridView で、次のように列を構成します。

'citystatus'=>array(
   'name'=>'citystatus',
   'value'=>'$data->citystatus == 1 ? "Active" : "Inactive"', 
   'filter'=> array(0 => 'Inactive', 1 => 'Active')),
于 2012-10-14T16:58:32.603 に答える