2016-12-13 3 views
0

je code suivant dans mon contrôleur:Comment affecter de nouvelles valeurs aux données sauvegardées dans yii 1?

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, 
    )); 
} 

et

const member=1; 
const district=2; 

Mon point de vue (appelé 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 et 2 apparaît dans la colonne appelée nom (dans mon voir le fichier) et les valeurs de cette colonne sont sauvegardées au format entier. Je dois montrer (dans mon vue (admin)) le membre et le district au lieu des nombres (par exemple le membre au lieu de 1). Comment puis-je le faire?

+0

Qu'est-ce que vous voulez faire? Veuillez expliquer dans un bon format –

+0

Dans le champ nom_formulaire, les données sont enregistrées dans un format entier. Je vais montrer à mon avis déposer des textes au lieu de chiffres. Tels que membre au lieu de 1, district au lieu de 2. – phpdev

Répondre

1

Vous pouvez également spécifier la colonne de vue du réseau comme celui-ci (ne nécessite pas une aide dans votre modèle):

array(
    'name'=>'form_name', 
    'value'=>'$data->form_name ? \'Member\':\'District\'', 
    'type'=>'text', 
), 

Cela fonctionne très bien si vous avez seulement 2 valeur dans la variable.

Visitez cette URL pour obtenir plus de détails.

http://www.yiiframework.com/forum/index.php/topic/14845-if-condition-inside-cgridview/

EDIT:

Si vous avez plus de 2 valeurs,

modèle que vous utilisez pour CGridView:

public function getValueText() { 
     return $this->getValueTextOptions[$this->form_name]; 
} 

public function getValueTextOptions() { 
     return array(
       1 => 'Member', 
       2 => 'District', 
     ); 
} 

Voir avec CGridView:

array(
    'name'=>'form_name', 
    'value'=>'$data->getValueText()', 
) 
+0

Non, j'ai beaucoup de valeurs – phpdev

+0

@ phpdev J'ai Modifier ma réponse pour plusieurs valeurs. –