У меня есть следующий код в контроллере:
public function actionAdmin() { $model=new MForm('search'); $model->unsetAttributes(); // clear any default values if(isset($_GET['ChManageForm'])) $model->attributes=$_GET['ChManageForm']; $this->render('admin',array( 'model'=>$model, )); }
а также
const member=1; const district=2;
Мой взгляд (называется admin)
<?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'ch-manage-form-grid', 'dataProvider'=>$model->search(), 'filter'=>$model, 'columns'=>array( 'id', 'form_name', 'region', 'phone_number', 'email', array( 'class'=>'CButtonColumn', ), ), )); ?>
1 и 2 отображаются в столбце с именем name (в моем файле вида), а значения этого столбца сохраняются в целочисленном формате. Мне нужно показать (на мой взгляд (admin)) член и округ вместо чисел (например, член вместо 1). Как мне это сделать?
Вы также можете указать столбец вида сетки (это не требуется помощник в вашей модели):
array( 'name'=>'form_name', 'value'=>'$data->form_name ? \'Member\':\'District\'', 'type'=>'text', ),
это отлично работает, если у вас есть только 2 значения в переменной.
Посетите этот URL, чтобы получить более подробную информацию.
http://www.yiiframework.com/forum/index.php/topic/14845-if-condition-inside-cgridview/
РЕДАКТИРОВАТЬ:
Если у вас более двух значений,
Модель, которую вы используете для CGridView:
public function getValueText() { return $this->getValueTextOptions[$this->form_name]; } public function getValueTextOptions() { return array( 1 => 'Member', 2 => 'District', ); }
Просмотр с CGridView:
array( 'name'=>'form_name', 'value'=>'$data->getValueText()', )